【golang/go语言】go语言中包的使用、Init()函数、协程和接口

1. 包

srC目录是以代码包的形式组织并保存Go源码文件的。每个代码包都和src目录下的文件夹一一对应。 每个子目录都是一个代码包。

  • 一个目录下的同级文件归属一个包。也就是说,在同一个包下面的所有文件的package名, 都是一样的。

  • 在同一个包下面的文件package名都建议设为是该目录名,但也可以不是。也就是说,包名可以与其目录不同名。

  • 包可以嵌套,比如utils目录下有名为utils的包,并嵌套一个timeUtils目录,该目录下有个timeUtils包。

  • 同包下的函数不需要导入包,可以直接使用。

  • 包名为main的包为应用程序的入口包,其他包不能使用。

import . "fmt"

这个点操作的含义就是这个包导入之后在你调用这个包的函数时,你可以省略前缀的包名,也就是前面你调用的fmt.PrintIn("hello world")可以省略的写成Println("hello world"),但是不建议这样做

2. init()函数

Init()函数不能有任何的参数和返回值,一个.go文件中可以存在多个init()函数

导入顺序:

  • 对同一个go文件的init( )调用顺序是从上到下的。
  • 对同一个package中的不同文件,将文件名按字符串进行”从小到大”排序,之后顺序调用各文件中的init()函数。
  • 对于不同的package,如果不相互依赖的话,按照main包中import的顺序调用其包中的init()函数。
  • 如果package存在依赖,调用顺序为最后被依赖的最先被初始化,例如:导入顺序main -> A -> B -> C,则初始化顺序カC -> B -> A -> main, 依次执行对应的init()函数。main包总是被最后一个初始化,因カ它总是依赖別的包。

一个包被多个包import,但只能被初始化一次。

3. go语言协程

一旦主协程执行结束,即使子协程没有执行完也会立即终止。

4. 接口

  • 当使用接口类型的对象时,可以用任意实现类对象代替
  • 当将接口实现类对象赋值给接口对象时,接口对象不能访问实现类对象中的属性

断言是对接口对象进行的操作

  • instance := 接口对象.(实际类型) // 不安全,会引发panic
  • instance, ok := 接口对象.(实际类型) //安全
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值