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

 

posted on 2025-05-09 15:44  toong  阅读(23)  评论(0)    收藏  举报