Go Package

Go Package

package 基本使用

(1)目中的每个文件夹都是一个package。package下可以嵌套package。但每个.go文件的package以其所在的当前文件夹为准。

(2)在GoLand中新建文件夹时,在该层目录下新建的.go文件,其package默认为当前文件夹名大小写一致。当.go文件创建后,再去修改文件夹名时,需要注意其下的.go文件中的package是否自动修改。

(3)同一层目录下的.go文件,package必须一致,否则编译出错


package 可见性

在go语言中,变量或函数名的首字母大写时,其就是可导出的,小写时则是不可导出的。

函数和变量的可访问性是以包做隔离的

函数或变量可访问性
同一个包可/不可导出的都能访问
其他的包可导出的可访问
其他的包不可导出的不能访问

同一个包内,均可访问导出/不可导出的变量或函数。无论变量是全局变量还是struct的成员变量,无论函数是全局函数还是隶属于某个struct的成员函数。


package main

main是个特殊的package。go的可执行方法,只有main包下的main方法。

同一级文件夹下的package是main,当该文件夹下的某个.go文件调用同级目录下的变量或方法时,静态编译不报错,但是执行run动态编译时,就会报undefined错误。

dir A
    a1.go
    a2.go


---- a1.go
package main

func main(){
    //静态编译(即写代码时)不报错
    //运行该main()方法时,报错
    B() //调用a2.go文件的B()方法
}


----- a2.go
package main

func B(){
    fmt.Plintln("I am B()")
}

go 初始化顺序

运行main方法时:

  1. 先初始化import的所有包
  2. 先初始化const常量,然后是全局变量var,再是init()函数
  3. 当import下的包都初始化结束后,最后执行main的const, var,init(), main()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值