从另一个包中导出函数

时间:2018-04-28 18:30:35

标签: go

我按照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/

1 个答案:

答案 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)
}