GO的基础知识扫盲注意事项

 更新时间:2022年12月19日 14:43:17   作者:astarblog  
这篇文章主要介绍了GO的基础知识注意事项,本文是GO语言小白的扫盲文,主要讲解了go语言的基本知识,GO程序目录结构,GO程序包的导入与别名运用,GO内置关键字,GO注释方法需要的朋友可以参考下

一.GO程序目录结构

在GOPATH目录下的结构

--bin(存放编译后生成的可执行文)
|----hello.exe(可执行文件)
--pkg(存放编译后生成的包文)
|-----(后面用到了在说)
--src(存放项目源)
|----hello(项目目录)
|------main.go(入口文件,下面会详解)
|----...(多个目录和上面hello的形式一样)
|-------...

二.GO程序的一般结构

在进行介绍前我先来回顾下之前的main.go文件结构

package main
import (
    "fmt"
)
func main() {
    fmt.Println("Hello World")
}

Go程序是通过package来组织的,和python类似,只有package名称为main的包可以包含main函数,一个可执行的程序有且仅有一个main包

通过import关键字来导入其他非main包

通过const关键字来定义常量

通过var关键字来进行全局变量的声明与赋值

通过type键字来进行结构(struct)或接口(interface)的声明

通过func关键字来进行函数的声明

三.GO程序包的导入与别名运用

包的导入

单独引入各种包

import "fmt"
import "io"
import "time"
import "strings"

统一引入,省去多个import关键字

import(
    "fmt"
    "io"
    "time"
    "strings"
)

如果导入的包如果没有调用,在编译的时候会报编译错误,这个是很关键的,所以在编译报错的时候可以检查一下是否有导入的包未调用

包的别名与运用

在实际工作中为了简写或者统一命名等一些特殊情况下

import(
    print "fmt"
)

上面就是将fmt替换成print,没替换前是:

fmt.Println("Hello World")

替换后是:

print.Println("Hello World")

包的别名还有一个省略调用的,非常不建意那么用,所以就不介绍了

四.可见性规格(非常重要)

在GO语言中使用大小写确定该 常量、变量、类型、接口、结构或函数 是否可以被外部包所调用

函数名首字母小写为private,表示私有,不可以被外部调用

函数名首字母大写为public,表示公有,可以被外部调用

1. 首字母小写函数例:(不可被名部调用)

func getDate(){
    return ...
}

2. 首字母大写函数例:(可被外部调用)

func GetDate(){
    return ...
}

五. GO内置关键字

常用一共25个,全部小写

break
default
func
interface
select
case
defer
go
map
struct
chan
else
goto
package
switch
const
fallthrough
if
range
type
continue
for
import
return
var

六. GO注释方法

//  : 表示单行注释
/* */   : 表示多行注释

本文主要是GO语言的基础知识扫盲文,主要讲解了GO程序目录结构,GO程序包的导入与别名运用,GO内置关键字,GO注释方法等相关知识,更多GO语言基础知识请查看下面的相关链接

相关文章

  • Go1.21新增slices包的用法详解

    Go1.21新增slices包的用法详解

    Go 1.21新增的 slices 包提供了很多和切片相关的函数,可以用于任何类型的切片,这篇文章主要来和大家介绍一下slices包中相关函数的用法,需要的可以参考一下
    2023-08-08
  • Go语言并发爬虫的具体实现

    Go语言并发爬虫的具体实现

    本文主要介绍了Go语言并发爬虫的具体实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • Go语言的互斥锁的详细使用

    Go语言的互斥锁的详细使用

    本文主要介绍了Go语言的互斥锁的详细使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • goland -sync/atomic原子操作小结

    goland -sync/atomic原子操作小结

    这篇文章主要介绍了goland -sync/atomic原子操作,原子操作能够保证执行期间是连续且不会被中断(变量不会被其他修改,mutex可能存在被其他修改的情况),本文给大家介绍的非常详细,需要的朋友参考下
    2022-08-08
  • Go网络编程TCP抓包实操示例探究

    Go网络编程TCP抓包实操示例探究

    作为一名软件开发者,网络编程是必备知识,本文通过 Go 语言实现 TCP 套接字编程,并结合 tcpdump 工具,展示它的三次握手、数据传输以及四次挥手的过程,帮助读者更好地理解 TCP 协议与 Go 网络编程
    2024-01-01
  • 深入了解Go语言中的作用域和变量重声明

    深入了解Go语言中的作用域和变量重声明

    在 Go 语言中,代码块的嵌套和作用域是程序设计的关键概念之一,本文将探讨如何在 Go 语言中利用代码块的嵌套和作用域来组织代码,并介绍变量重声明的规则,感兴趣的可以了解下
    2023-11-11
  • 如何用Go判断元素是否在切片中

    如何用Go判断元素是否在切片中

    切片(Slice)是一个拥有相同类型元素的可变长度的序列,下面这篇文章主要给大家介绍了关于如何用Go判断元素是否在切片中的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • golang Gorm与数据库完整性约束详解

    golang Gorm与数据库完整性约束详解

    这篇文章主要介绍了golang Gorm与数据库完整性约束详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • 使用Golang开发一个简易版shell

    使用Golang开发一个简易版shell

    这篇文章主要为大家详细介绍了如何使用Golang开发一个简易版shell,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-02-02
  • Go语言变量与基础数据类型详情

    Go语言变量与基础数据类型详情

    Go 是静态(编译型)语言,是区别于解释型语言的弱类型语言(静态:类型固定,强类型:不同类型不允许直接运算),下面文章将对其进行详细介绍,需要的朋友可以参考一下
    2021-09-09

最新评论