【问题标题】:Golang, import pkg after go installGolang,安装后导入 pkg
【发布时间】: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”。

标签: go import


【解决方案1】:

要导入的函数必须以大写字母开头。

一步一步:

  1. cd imports/pyfuncs
  2. go install
  3. 尝试访问 pyfunc 时,请执行 imoprt "imports/pyfuncs"
  4. 通过pyfuncs.PyRange访问该功能

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-06
    • 1970-01-01
    • 2017-02-17
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多