golang 基础知识点

1.Go 在执行main 函数之前会先执行 init 函数
2. go import 某个包使用下划线,例如:

import (
    "fmt"
    "log"
    "os"
    _ "../sample/matchers"//一般不提倡相对路径导入
    // "./search"
) 

Go 语言的每个代码文件都属于一个包, main.go 也不例外, 此处matchers 是一个目录,里面可包含多个.go文件,所有处于同一个文件夹里的代码文件,必须使用同一个包名(matchers),_ 表示 让编译器接受这类导入,并且调用对应包内的所有代码文件里定义的 init 函数。
3. 在 Go 语言里,标识符要么从包里公开,要么不从包里公开。当代码导入了一个包时,程序可以直接访问这个包中任意一个公开的标识 符。这些标识符以大写字母开头。以小写字母开头的标识符是不公开的,不能被其他包中的代码直接访问。
4. 在 Go 语言中,所有变量都被初始化为其零值。对于数值类型,零值是 0;对于字符串类型,零值是空字符串;对于布尔类型,零值是 false;对于指针,零值是 nil。对于引用类型来说,所引用的底层数据结构会被初始化为对应的零值。但是被声明为其零值的引用类型的变量,会返回 nil 作为其值。
5. 在 Go 语言中,通道(channel)和映射(map)与切片(slice)一样,也是引用类型,不过通道本身实现的是一组带类型的值,这组值用于在 goroutine 之间传递数据。通道内置同步机制,从而保证通信安全。
6. sync 包的 WaitGroup 跟踪所有启动的 goroutine。非常推荐使用 WaitGroup 来跟踪 goroutine 的工作是否完成。 WaitGroup 是一个计数信号量,我们可以利用它来统计所有的goroutine 是不是都完成了工作。每个 goroutine 完成其工作后,就会递减 WaitGroup 变量的计数值,当这个值递减到 0 时,我们就知道所有的工作都做完了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值