第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

Golang學(xué)習(xí)筆記之包(package)

標簽:
Go
包是结构化代码的一种方式:每个程序都由包的概念组成,可以使用自身的包或者从其它包中导入内容。
一、工作空间

编译⼯具对源码目录有严格要求,每个⼯作空间 (workspace) 必须由 bin、 pkg、 src 三个目录组成。

webp

二、包结构

所有代码都必须组织在 package 中。
• 包由同⼀目录下的多个源码⽂件组成。
• 包名类似 namespace,与包所在目录名、编译⽂件名⽆关。
• 目录名最好不⽤ main、 all、 std 这三个保留名称。
• 可执⾏⽂件必须包含 package main,⼊⼝函数 main。
包声明 "package + 包名" ,必须在源文件中非注释的第一行指明这个文件属于哪个包。如:package main。package main表示一个可独立执行的程序,每个Go应用程序都包含一个名为 main 的包。
同一个包(package)下面,可以有非常多的不同文件,只要每个文件的头部都有相同name就可以,如 "package oldboy" 。文件夹名字可以和这个package名称不一致。

三、标准库

在Go的安装文件里包含了一些可以直接使用的包,即标准库。
在执行go get 命令之前,确保你的电脑配置了环境变量GOPATH,并且安装git。
具体操作可以看一下这篇简书,写的很棒

(2)绝对路径导入包,导入 gopath/src/geometry/rectangle包中的内容。
"import "geometry/rectangle"
(3)相对路径导入包,导入同一目录下 rectangle 包中的内容。
import "./rectangle //仅对 go run main.go 有效"
(4)包重命名模式,导入包并启用别名。
import f "fmt //导入fmt,给他起别名f
(5)简便模式,这样就可以直接使用其内容,而不用再使用其"包名."的模式
import . "fmt" //例如fmt.Println可以直接写为Println
(6)⾮导⼊模式,仅让该包执⾏初始化函数
import _"./rectangle" //仅执行该包内的init函数
未使⽤的导⼊包,会被编译器视为错误 (不包括 "import _")。

七、初始化

• 每个源⽂件都可以定义⼀个或多个初始化函数。
• 编译器不保证多个初始化函数执⾏次序
• 初始化函数在单⼀线程被调⽤,仅执⾏⼀次。
• 初始化函数在包所有全局变量初始化后执⾏。
• 在所有初始化函数结束后才执⾏ main.main。
• ⽆法调⽤初始化函数。
• 如果一个包导入了另一个包,被导入的包先初始化。
• 尽管一个包可能被包含多次,但是它只被初始化一次。

函数形式如下:

func init() {
    f.Println("init")
}

不应该滥⽤初始化函数,仅适合完成当前⽂件中的相关环境设置。



作者:学生黄哲
链接:https://www.jianshu.com/p/e200fe9b0956


點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會

舉報

0/150
提交
取消