小白的golang小例子
這個代碼build報錯
tong@T17 ~/g/s/test [1]> ls go.mod main.go package_a.go test* tong@T17 ~/g/s/test> cat go.mod module test go 1.22.2 tong@T17 ~/g/s/test> cat package_a.go package package_a func func_a1() { print("i am package-a::func_a1") } tong@T17 ~/g/s/test> cat main.go package main import ( a "package_a" ) func main() { print("123456") a.func_a1() } tong@T17 ~/g/s/test> go build main.go:4:2: package package_a is not in std (/usr/lib/go-1.22/src/package_a) found packages main (main.go) and package_a (package_a.go) in /home/tong/go/src/test
三個錯誤:
1 Go嚴格禁止同一個目錄包含多個包。所以需要新建文件夾
2 導出函數首字母必須大寫
3 import 的參數是“模塊名 + 文件夾名”
改完以后成功:
tong@T17 ~/g/s/test> ls go.mod main.go package_a/ test* tong@T17 ~/g/s/test> tree . ├── go.mod ├── main.go ├── package_a │ └── package_a.go └── test 2 directories, 4 files tong@T17 ~/g/s/test> cat go.mod module test go 1.22.2 tong@T17 ~/g/s/test> cat main.go package main import ( a "test/package_a" ) func main() { print("123456") a.Func_a1() } tong@T17 ~/g/s/test> cat package_a/package_a.go package package_a func Func_a1() { print("i am package-a::Func_a1") } tong@T17 ~/g/s/test> go build tong@T17 ~/g/s/test> go run test 123456i am package-a::Func_a1? tong@T17 ~/g/s/test>
浙公網安備 33010602011771號