3 回答
TA贡献1770条经验 获得超3个赞
在包之外,只能访问和引用导出的标识符,即以大写字母开头的标识符。
因此,最简单的解决方法是通过将math.add()函数名称更改为Add()in来导出函数math.go:
func Add(x, y int) int {
return x + y
}
而且,当然,当您从以下位置引用它时main.go:
x := math.Add(6, 5)
作为旁注,请注意,在导入hello_world/math包时,您不必指定新名称来引用其导出的标识符:默认情况下,它将是其导入路径的最后一部分,因此这相当于您的导入:
import (
"fmt"
"hello_world/math"
)
TA贡献1909条经验 获得超7个赞
将包中您希望其他函数读取的函数大写:
func Add(x, y int) int {
return x + y
}
然后像这样在hello.go 中调用它:
x := math.Add(6, 5)
将它们保持小写确实有其目的,特别是如果您想保护它免于在包装外无意中使用。
TA贡献2080条经验 获得超4个赞
函数、变量、来自不同包的任何东西都必须以大写字母开头,以使其在导入主包时可见。
例子:
package main
import "fmt"
import "other/out"
func main(){
fmt.Println(out.X)
// hello
}
package other
var X string = "hi"
- 3 回答
- 0 关注
- 282 浏览
添加回答
举报
