小白的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号