idea开发golang包访问

tianxia007 · 2018-04-08 12:25:32 · 1324 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2018-04-08 12:25:32 的主题,其中的信息可能已经有所发展或是发生改变。

image.png Student类在同包的struct.go文件中: image.png

为什么function_args_struct.go文件中没法访问struct.go中的类(类名大写)。 通过idea,写出来不报错,运行时候才报错的。

我感觉是和设置gopath有关系:希望解答,谢谢 image.png


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1324 次点击  
加入收藏 微博
8 回复  |  直到 2018-04-08 14:28:57
tk103331
tk103331 · #1 · 7年之前

gopath目录是有要求的,需要包含bin、pkg、src三个子目录,源代码放在src里面,package的导入也是从src开始的。

你的例子中project GOPATH明显是不对的,使用Student结构体时,应该先导入

import "com.dw/demo1/day3"

然后使用struct.go所在包的名字访问,比如定义报名package day3,则 day3.Student

CrazyWorkers
CrazyWorkers · #2 · 7年之前

我自己也尝试了一下,会出现类似的问题,但是使用go build 生成exe文件后,运行exe结果会是对的,估计是单个文件编译运行时,没有找到这个结构体,但是编译整个包时,找到了这个结构体。

tianxia007
tianxia007 · #3 · 7年之前
tk103331tk103331 #1 回复

gopath目录是有要求的,需要包含bin、pkg、src三个子目录,源代码放在src里面,package的导入也是从src开始的。 你的例子中project GOPATH明显是不对的,使用Student结构体时,应该先导入 ``` import "com.dw/demo1/day3" ``` 然后使用struct.go所在包的名字访问,比如定义报名package day3,则 day3.Student

我day3里面的package 全是main。相当于怎么访问同名包下其他文件的struct?

tk103331
tk103331 · #4 · 7年之前
tianxia007tianxia007 #3 回复

#1楼 @tk103331 我day3里面的package 全是main。相当于怎么访问同名包下其他文件的struct?

运行方式应该是go build一个目录或一个包,然后运行exe,你是不是单文件运行的

tianxia007
tianxia007 · #5 · 7年之前
tk103331tk103331 #4 回复

#3楼 @tianxia007 运行方式应该是go build一个目录或一个包,然后运行exe,你是不是单文件运行的

是的,单文件运行的,按@CrazyWorkers 的说法,可能需要整个编译出来才行?那怎么只编译用的某几个单文件呢

tianxia007
tianxia007 · #6 · 7年之前

https://studygolang.com/articles/3880 安上面说法,一个目录下只能有一个package main,是不是整个工程只能有一个目录下是main包?

tianxia007
tianxia007 · #7 · 7年之前
tk103331tk103331 #4 回复

#3楼 @tianxia007 运行方式应该是go build一个目录或一个包,然后运行exe,你是不是单文件运行的

thanks!

tianxia007
tianxia007 · #8 · 7年之前
CrazyWorkersCrazyWorkers #2 回复

我自己也尝试了一下,会出现类似的问题,但是使用go build 生成exe文件后,运行exe结果会是对的,估计是单个文件编译运行时,没有找到这个结构体,但是编译整个包时,找到了这个结构体。

thanks

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传