为了账号安全,请及时绑定邮箱和手机立即绑定

目录结构和导入

目录结构和导入

Go
冉冉说 2023-08-07 14:45:18
我不明白包/项目目录结构是如何工作的。我正在关注这 2 个链接,在此处输入链接描述,在此处输入链接描述我的 Go 工作区位于 /workspace/golang 下。我的$GOPATH等于/workspace/golang我的目录结构如下:/workspace/golang/src/Tutorial/...tutorial_main.go              <- Default 'Hello World' program...library/......arithmetic.go算术.go 的内容:package libraryfunc addNum(a int, b int) int {  return a + b}我cd进入库文件夹并运行go build arithmetic现在,我不知道如何在tutorial_main.go 文件中使用算术.go。我尝试了以下操作:import "library"fmt.Println("Result : ", library.addNum(1,4))import "Tutorial/library"fmt.Println("Result : ", library.addNum(1,4))import "src/Tutorial/library"fmt.Println("Result : ", library.addNum(1,4))两者都不起作用。它一直说找不到library 我不明白我做错了什么。
查看完整描述

2 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

根据您的设置,包导入路径为:

import "Tutorial/library"

并且您应该将要在库包中导出的名称大写,以便您可以从其他包访问它们。

一般情况下,导入路径如果是本地则为包的文件路径(相对于$GOPATH),否则为包的远程路径,如github.com/myaccount/package. 诸如此类的简单导入名称import library是为内置包保留的。相对导入路径也可以,但不推荐使用,即import ./library.

也就是说,模块系统 $GOPATH 不再使用。我建议您阅读模块以及如何在 $GOPATH 之外工作。


查看完整回答
反对 回复 2023-08-07
?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

在 Go 中,您想要导出(在包外部可用)的变量和函数需要以大写字母开头。


package library


func privateAddNum(a int, b int) int {

  return a + b

}


func PublicAddNum(a int, b int) int {

  return a + b

}

privateAddNum是一个未导出的函数,只能在library包内访问。


PublicAddNum是一个导出函数,可以被导入的外部包访问library。


查看完整回答
反对 回复 2023-08-07
  • 2 回答
  • 0 关注
  • 102 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信