首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在test1中调用test2的Go函数

如何在test1中调用test2的Go函数
EN

Stack Overflow用户
提问于 2016-12-01 09:32:19
回答 1查看 93关注 0票数 2

按下面的方式归档

代码语言:javascript
复制
package goClientLib
import (
     ....
)
//The following function will read Command Line Inputs and will return 3 strings
func readInput() (string, string, string){
    var (clientRequest, clientId, clientPassword string)
    argsLen := len(os.Args)
    fmt.Println("Arg Length:",argsLen)
    if len(os.Args) != 4 {
        fmt.Fprintf(os.Stderr, "Usage: %s URL\n", os.Args[0])
        os.Exit(1)
    } else {
        clientRequest = strings.Join(os.Args[1:2],"")
        clientId = strings.Join(os.Args[2:3],"")
        clientPassword = strings.Join(os.Args[3:4],"")
    }

    return clientRequest, clientId, clientPassword
}

现在,我试图在Test2.go文件中使用它,如下所示:

代码语言:javascript
复制
package main
import (
    "os"
    "fmt"
    "net/http"
    "io"
    "log"
    "goClientLib"
)

func main() {
    clientRequest, clientId, clientPassword := goClientLib.readInput()
    host := goClientLib.generateRequest(clientRequest)
    fmt.Println("clientRequest:",clientRequest)
    fmt.Println("clientId:",clientId)
    fmt.Println("clientPassword:",clientPassword)
    fmt.Println("host:",host)
    response, err := http.Get(host)
    if err != nil {
        log.Fatal(err)
    } else {
        defer response.Body.Close()
        _, err := io.Copy(os.Stdout, response.Body)
        if err != nil {
            log.Fatal(err)
        }
    }
}

我使用以下文件结构

代码语言:javascript
复制
src/test2.go
src/goClientLib/test1.go

但是,这段代码在运行时给出了以下错误

代码语言:javascript
复制
# command-line-arguments
src\goClientMain.go:15: cannot refer to unexported name goClientLib.readInput
src\goClientMain.go:16: cannot refer to unexported name goClientLib.generateRequest
src\goClientMain.go:16: undefined: goClientLib.generateRequest
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-01 09:58:07

正如Volker评论的那样,为了从另一个包访问函数,第一个函数名必须是大写字母。在您的示例中,将readInput()更改为ReadInput(),将generateRequest()更改为GenerateRequest(),并确保在goClientLib包中定义了GenerateRequest()函数。查看以获取更多信息。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40906921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档