go语言import导入包的一些规则 |
您所在的位置:网站首页 › go语言导入自定义包 › go语言import导入包的一些规则 |
(没事go一下)
go语言的包 如果你是C语言、C++ 或者 flash语言 出身 ,写起来会很蛋疼些 go语言import 关键字导入的 并不是 一个真正的包,而是一个文件夹的路径 看代码:这是一个main1.go文件的源码
OK 看上面我的代码 import的都是一个带有1的文件夹(我故意加上的) 而引用使用的时候,必须使用 包名调用其函数:例如 catlog.Debug("log OK") 看我的 catlog1文件夹下 log.go文件如何写的: OK 可以看到我 package关键字后面定义的 名字为 catlog 的包名 是不是颠覆了些你以往对import的理解?!做过java的理解会好些。
还有一个关键的地方: 一个文件夹下 不能定义2个不同的包名,这样编译器会报错: main.go:4:2: found packages netClient.go (netClient) and netClientTest.go (netClient2) in C:\xxoo目录下 编译器的意思就是在同一个目录下 居然发现2个包名 这是不应该的! 所以 我就重新建立了netClient1 和 netClient2放在2个目录下 就可以定义不同的包了,或者放在同一目录下 把package 的包名为相同的!
另外: package 包名(区分大小写) import 文件夹名(不区分大小写) import 多层文件目录时 请使用"/"隔开 如果使用"\" 报错 main.go:5:2: invalid import path: "xxxx\xxxx" OK (以上我均测试过)大家可以写代码验证下。
总结: 1:go语言import 关键字导入的 并不是 一个真正的包,而是一个文件夹的路径 2: 一个文件夹下 不能定义2个不同的包名 3:package 包名 (区分) 大小写 4: import 文件夹名 (不区分) 大小写 5:go文件的名字随意命名,调用依赖 包+函数(或者 包+其他) 6:import 多层文件夹时候请使用 (" / ") 隔开,写成(" \ ")会报错 其他:还有(.a文件)的一些问题以后再讨论,我理解也不透彻 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |