我按照https://golang.org/doc/code.html#Workspaces链接中的说明进行操作,并构建了我的第一个Go程序。
因此,我尝试使用以下说明创建库= https://golang.org/doc/code.html#Library
一切都很完美,直到构建hello.go,它给了我这个错误。
/hello.go:10:13:未定义:stringutil.Reverse
我已经重建了 reverse.go.
reverse.go.
那就是我的代码:
package main import ( "fmt" "github.com/d35k/stringutil" ) func main() { fmt.Printf(stringutil.Reverse("!oG ,olleH")) }
那是我的reverse.go(与文档相同)
package stringutil func reverse(s string) string { r := []rune(s) for i, j := 0, len(r)-1; i < len(r)/2; i, j = i+1, j-1 { r[i], r[j] = r[j], r[i] } return string(r) }
和我的gopath变量
export GOPATH=$HOME/GoLang
和我的文件放在
GoLang/src/github.com/mygithubusername/
Golang Tour将导出的名称指定为
如果名称以大写字母开头,则将导出。并且在导入包时,您只能引用其导出的名称。无法从包外部访问任何“未导出”的名称。
更改reversefunc 的名称Reverse以使其可导出到主程序包。像下面
reverse
Reverse
package stringutil func Reverse(s string) string { r := []rune(s) for i, j := 0, len(r)-1; i < len(r)/2; i, j = i+1, j-1 { r[i], r[j] = r[j], r[i] } return string(r) }