【发布时间】:2020-08-08 21:19:32
【问题描述】:
我是新手,我来自 python。为了学习,我正在重新创建 python 内置函数。
我被困在我的第一个功能 - 范围内,它还不是生成器。
我希望能够:
// testmain.go
package main
import (
"pyfuncs"
"fmt"
)
func main(){
fmt.Println( pyfuncs.range(12) )
fmt.Println( pyfuncs.range(-12, -2, 3) )
}
输出:
[1 2 3 4 5 6 7 8 9 10 11 12]
[-12 -9 -6 -3]
*/
我的$GOPATH/ 的结构是这样的:
/$GOPATH/
|
| src/
| | imports/
| | | pyfuncs/
| | | | pyrange.go (package pyfuncs)
| | learn/
| | | testmain.go (package main) <- This doesnt work
| | | ArraysAndSlices/...
| | | Printf/...
|
| pkg/
| | linux_amd64/
| | | imports/
| | | | pyfuncs.a
| bin/...
我在 testmain.go
如何从 pyfuncs 目录访问函数?
我希望能够从 fmt 等未来的每个项目中访问它们。在 python 中,我只需将它们推到 python 文件夹中的 lib/ 目录中。
这些是错误:
cannot refer to unexported name pyfuncs.pyRange
undefined: pyfuncs.pyRange
【问题讨论】:
-
阅读How to write Go code。该文档描述了如何使用模块、包和 go 命令。
-
在 Golang 中,当且仅当函数的第一个字母大写时,它才被导出/公开。因此您无法访问函数“pyRange”,您需要将其重命名为“PyRange”。