golang导包

被坑的体无完肤,特此纪念,不是新手不要看

包结构如图

接下来我们要在main.Go中调用myprint2.go中的方法

myprint2.go

[plain]  view plain  copy
 print ?
  1. package test  
  2.   
  3. import "fmt"  
  4.   
  5. func MyPrint2() {  
  6.     fmt.Println("这条信息来自myprint2")  
  7. }  

myprint.go

[plain]  view plain  copy
 print ?
  1. package test  
  2.   
  3. import "fmt"  
  4.   
  5. func MyPrint() {  
  6.     fmt.Println("这条信息来自myprint")  
  7. }  

main.go

[plain]  view plain  copy
 print ?
  1. package main  
  2.   
  3. import (  
  4.     "try2/test"  
  5. )  
  6.   
  7. func main() {  
  8.     test.MyPrint2()  
  9. }  


输出结果

[plain]  view plain  copy
 print ?
  1. C:/Go/bin/go.exe build -i [E:/goworkspace/src/try2]  
  2. 成功: 进程退出代码 0.  
  3. E:/goworkspace/src/try2/try2.exe  [E:/goworkspace/src/try2]  
  4. 这条信息来自myprint2  
  5. 成功: 进程退出代码 0.  

接下来我们来说说这里的坑:

1 package是包,真的是包,是特么文件夹啊,物理文件夹啊,卧槽啊,坑爹啊,我第一次写的时候myprint.go跟myprint2.go的package不一样(别问为啥,我也不知道咋想的,为了不误导大家,就不写出来了),结果main.go调用的时候,各种报错;

2 当import的时候,导入的也是包,这个"包"跟上面的包含义一样,但是跟Java中的包含义不太一样,如果你不知道前面这句啥意思,千万不要去搜索,越不想记的东西越不容易忘;

3 调用的时候,使用包名.方法名来调用,但是,但是,我没有试结构体,为啥没试,我懒。如果谁看到这里自己去试了,请告诉我。如果谁看到这里自己没试还想知道,那找完答案也记得告诉我。


1 相对路径

import ".model"  //<--是与当前文件同一目录的model目录,但是不建议使用这种方式来导包

2 绝对路径

import "shortcut/model" //<--加载gopath/src/shortulr/model模块

点操作
我们有时候会看到如下的方式导入包

import(. " fmt")

个点操作的含义就是这个包导入之后在你调用这个包的函数时, 你可以省略前缀的包名, 也就是前面你调用的fmt. Println("hello world") 可以省略的写成Println("hello world"),无闻的视频上建议不要使用这样的方式,可读性太差

别名操作
别名操作顾名思义我们可以把包命名成另一个我们用起来容易记忆的名字
import(f " fmt")
名操作的话调用包函数时前缀变成了 我们的前缀, 即f. Println("hello world"),个人不喜欢这种方式,好好的系统包调用名字你给改了,其他人读代码多不爽
_操作
import (
" database/ sql"
_ " github. com/ z iutek/ mymysql/ godrv"//<----很重要 感谢天感谢地可算知道这破玩意是啥意思了
)
_操作其实是引入该包, 而不直接使用包里面的函数, 而是调用了该包里面的init函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值