V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
GjriFeu
V2EX  ›  程序员

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

  •  
  •   GjriFeu · 2016-11-14 17:48:57 +08:00 · 5922 次点击
    这是一个创建于 2933 天前的主题,其中的信息可能已经有所发展或是发生改变。
    12 条回复    2016-11-15 11:13:46 +08:00
    adv007
        1
    adv007  
       2016-11-14 18:26:07 +08:00 via iPhone
    函数首字母大写会导出给外部调用
    timothyye
        2
    timothyye  
       2016-11-14 20:52:41 +08:00 via Android
    看两个文件是不是在同一个包,同一个包可以直接调用。如果不是同一个包,需要 import ,另外被调用的方法得是 public 权限。
    GjriFeu
        3
    GjriFeu  
    OP
       2016-11-14 22:40:00 +08:00
    @adv007
    @timothyye
    比如 test.go 中有个方法 add, main.go 中想调用这个方法,这两个.go 文件在同一个目录下 .把 test.go 打包么?
    janxin
        4
    janxin  
       2016-11-14 22:51:49 +08:00
    和打包有什么关系
    scnace
        5
    scnace  
       2016-11-14 22:51:58 +08:00 via Android
    @GjriFeu test. go 是哪个 package 下的? package main ?
    GjriFeu
        6
    GjriFeu  
    OP
       2016-11-14 22:56:40 +08:00
    @scnace package test
    scnace
        7
    scnace  
       2016-11-14 22:57:32 +08:00 via Android
    @GjriFeu test.Add()
    defia
        8
    defia  
       2016-11-14 22:57:56 +08:00
    除非你是 go run xx.go 单个文件运行的,否则一个文件夹下的就是一个包,一个包内可以互相无权限限制调用.
    GjriFeu
        9
    GjriFeu  
    OP
       2016-11-15 09:50:42 +08:00
    @scnace
    @defia
    只要直接两个文件都是 package ,直接在同一个目录下能调用
    singsen
        10
    singsen  
       2016-11-15 10:09:13 +08:00
    个人经验, go 项目的文件夹就是包,文件夹名就是包名,同一文件夹(包)下的所有文件可以视为同一文件,也就是可以随意拆分或者合并为一个或多个 go 文件都没有影响,文件名对程序也没有影响,同一文件夹(包)下的所有文件, package name 必须一致。要使用其他文件夹(包)下的资源,使用 import 导包, import 导包的路径是相对于 gopath 的相对路径
    singsen
        11
    singsen  
       2016-11-15 10:09:48 +08:00
    @singsen main 包除外
    sfwn
        12
    sfwn  
       2016-11-15 11:13:46 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3337 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 12:11 · PVG 20:11 · LAX 04:11 · JFK 07:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.