mirror of
https://gitee.com/shikong-sk/golang-study
synced 2025-02-23 07:22:16 +08:00
docs: package 包
单/多行导入、别名/匿名导入、init 初始化
This commit is contained in:
parent
1a00ff6615
commit
d94d3606e1
@ -1,5 +1,14 @@
|
|||||||
package calc
|
package calc
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
// 导入包时自动触发 init 函数
|
||||||
|
// init 函数既没有参数也没有返回值
|
||||||
|
// 不能在代码中主动调用
|
||||||
|
func init() {
|
||||||
|
fmt.Println("calc 包被导入")
|
||||||
|
}
|
||||||
|
|
||||||
// 包中的标识符
|
// 包中的标识符
|
||||||
// 如果首字母为小写 则表示为私有 只在当前包内生效 对外不可见
|
// 如果首字母为小写 则表示为私有 只在当前包内生效 对外不可见
|
||||||
// 如果为大写 则表示为共有 对外部可见
|
// 如果为大写 则表示为共有 对外部可见
|
||||||
|
@ -1,14 +1,32 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
|
// 单行导入
|
||||||
|
//import "fmt"
|
||||||
|
|
||||||
|
// 多行导入
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
// 如果使用 go mod init package 建立主包 则为相对于主包的路径
|
// 如果使用 go mod init package 建立主包 则为相对于主包的路径
|
||||||
"package/calc"
|
"package/calc"
|
||||||
// 默认使用相对于 GOPATH/src 下的路径
|
// 默认使用相对于 GOPATH/src 下的路径
|
||||||
//"skcks.cn/Shikong/golang-study/base/package/calc"
|
//"skcks.cn/Shikong/golang-study/base/package/calc"
|
||||||
|
|
||||||
|
// 自定义包名
|
||||||
|
// 别名 包路径
|
||||||
|
c "package/calc"
|
||||||
|
|
||||||
|
// 匿名 导入包
|
||||||
|
// 只导入包 而不使用包内的数据/方法
|
||||||
|
// 一般用于触发 包 的 init 初始化
|
||||||
|
_ "package/calc"
|
||||||
|
// 多次导入同一个包实际只会执行一次 init 方法
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
fmt.Println("package 包初始化")
|
||||||
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
fmt.Println(calc.Add(1, 2))
|
fmt.Println(calc.Add(1, 2))
|
||||||
|
fmt.Println(c.Add(1, 2))
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user