- - go 中一个文件想要引用另一个文件中的函数怎么写

2016-11-14 17:48:57 +08:00
 GjriFeu
5959 次点击
所在节点    程序员
12 条回复
adv007
2016-11-14 18:26:07 +08:00
函数首字母大写会导出给外部调用
timothyye
2016-11-14 20:52:41 +08:00
看两个文件是不是在同一个包,同一个包可以直接调用。如果不是同一个包,需要 import ,另外被调用的方法得是 public 权限。
GjriFeu
2016-11-14 22:40:00 +08:00
@adv007
@timothyye
比如 test.go 中有个方法 add, main.go 中想调用这个方法,这两个.go 文件在同一个目录下 .把 test.go 打包么?
janxin
2016-11-14 22:51:49 +08:00
和打包有什么关系
scnace
2016-11-14 22:51:58 +08:00
@GjriFeu test. go 是哪个 package 下的? package main ?
GjriFeu
2016-11-14 22:56:40 +08:00
@scnace package test
scnace
2016-11-14 22:57:32 +08:00
@GjriFeu test.Add()
defia
2016-11-14 22:57:56 +08:00
除非你是 go run xx.go 单个文件运行的,否则一个文件夹下的就是一个包,一个包内可以互相无权限限制调用.
GjriFeu
2016-11-15 09:50:42 +08:00
@scnace
@defia
只要直接两个文件都是 package ,直接在同一个目录下能调用
singsen
2016-11-15 10:09:13 +08:00
个人经验, go 项目的文件夹就是包,文件夹名就是包名,同一文件夹(包)下的所有文件可以视为同一文件,也就是可以随意拆分或者合并为一个或多个 go 文件都没有影响,文件名对程序也没有影响,同一文件夹(包)下的所有文件, package name 必须一致。要使用其他文件夹(包)下的资源,使用 import 导包, import 导包的路径是相对于 gopath 的相对路径
singsen
2016-11-15 10:09:48 +08:00
@singsen main 包除外
sfwn
2016-11-15 11:13:46 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/320452

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX