我按照https://golang.org/doc/code.html#Workspaces链接中的说明操作,并构建了我的第一个Go程序。
所以,我尝试使用此指令= https://golang.org/doc/code.html#Library
创建库并且在构建hello.go之前一切都很完美,它给了我这个错误。
/hello.go:10:13:undefined:stringutil.Reverse
我已经重建了reverse.go.
这是我的代码:
package main
import (
"fmt"
"github.com/d35k/stringutil"
)
func main() {
fmt.Printf(stringutil.Reverse("!oG ,olleH"))
}
这是我的反向。(与文档相同)
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/
答案 0 :(得分:5)
Golang Tour将导出的名称指定为
如果名称以大写字母开头,则会导出该名称。什么时候 导入包,您只能引用其导出的名称。任何 &#34;未导出&#34;名称无法从包裹外部访问。
将reverse
func的名称更改为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)
}