首页 > 其他分享 >go之包

go之包

时间:2022-08-29 16:12:43浏览次数:37  
标签:文件夹 文件 之包 导入 使用 go mod

包的创建和管理

  go path模式(已经弃用)

    1、go mod 出现之前,所有的代码都要放在go path的src路径下

    2、go env可以看到go path,/Users/liuqingzheng/go  有三个文件夹

      -src:存放代码,项目,第三方包,自己写的包都要放在这

      -bin:编译后的文件放在这,下载的第三方可执行文件放在这,已经被加入环境变量了

      -pkg:编译过程中产生的中间文件存放路径

    3、如果项目不放在go path路径下,项目执行不了,导入包也导入不成功

  go mod模式(主流)

    1、1.11后官方出现,1.13后作为标准了,的一种包管理方式

    2、项目可以放在任意路径下,都可以运行,包一般放在项目中,可以下载并使用第三方包

    3、不同的项目:第三方包单独用自己的,不会出现混乱

    使用

    -go mod init    // 初始化---》执行它以后,项目根路径会有go.mod文件(使用goland直接创建,就有了)

    -go mod tidy    // 清理优化第三方包,把go mod中的不使用的包删除,使用的下载下来

包的分类

  包分为自定义的包和第三方的包

  自定义的包

  1、在项目路径下新建一个文件夹即可

  2、在文件夹中新建go文件,每个go文件的第一句,都是声明包

    --默认生成的包名就是文件夹的名字(可以改,但是不推荐)  

  3、在当前文件夹下的所有go文件,都必须属于同一个包

    --所有go文件的包名都必须一致,如果不一致就报错

  4、在文件夹下如果再建文件夹,表示又新建了个包,跟外层的包,没有必然的联系

包的使用

  1、在包中定义变量,定义函数,给其他包使用

  2、大写字母开头,表示导出字段

    --注意:只有大写字母开头的变量或函数才能被其他包使用

  3、如果小写字母开头,表示只给包内部使用(好比python面向对象中隐藏数据或方法)

  4、只要是同一个包下,所有的变量函数都是共享的,相当于在同一个go文件中

具体使用

  导入包:import  文件的绝对路径

  根据包名使用:包名(go文件名) . 函数名

go中包管理的其他

  导入多个包可以使用

      import (
      	"fmt"
      	"go_day03_demo/utils"
    )

  在任意包中,都可以写多个函数  init ,没有参数,没有返回值,只要包一导入,就会执行它,执行顺序是从上往下执行

    这样的作用:可以把一些初始化的一些操作放里面

  只导入包,不使用

    因为导入包会执行init,就只想让包内容初始化,但是不用包中的变量

_ "go_day03_demo/utils"

  导入包,给包重命名

pk1 "go_day03_demo/package1"

  以后使用pk1就可以

标签:文件夹,文件,之包,导入,使用,go,mod
From: https://www.cnblogs.com/zhaoyuanshi/p/16636280.html

相关文章

  • go之函数
    函数定义函数是一块执行特定任务的代码。一个函数是在输入源基础上,通过执行一系列的算法,生成预期的输出。函数的声明语法funcfunctionname(parameternamety......
  • Go常见
    GO基础语法方法或函数调用时,传入参数一般都是值复制,除非是map、slice、channel、指针类型是引用传递短的变量声明(ShortVariableDeclarations),即自动推导,只能在函数......
  • Django使用Redis进行缓存详细流程
    1.背景和意义服务器数据非经常更新。若每次都从硬盘读取一次,浪费服务器资源、拖慢响应速度。而且数据更新频率较高,服务器负担比较大。若保存到数据库,还需要额外建立一张对......
  • tiangolo/uvicorn-gunicorn:python3.8 fastapi docker部署
    经验教训:1、gunicornlog文件固定放置在容器中目录:/code/logs,所以这个目录必需映射出来;2、按照fastapi官方建议,uvicorn运行目录:/app,所以这个目录要映射到代码目录;3、......
  • django2.x -- 报错"UnicodeDecodeError: 'gbk' codec can't decode byte 0xa6 in posi
    解决方法:进入debug.py文件将331行代码修改编码方式为‘utf-8’......
  • go语言文件处理-02
    go语言zip归档文件的读写操作Go语言的标准库提供了对几种压缩格式的支持,其中包括gzip,因此Go程序可以无缝地读写.gz扩展名的gzip压缩文件或非.gz扩展名的非压缩文......
  • Dragonfly 基于 P2P 的文件和镜像分发系统
    作者:孙景文、吴迪背景网络下载提起网络下载领域,你应该首先会想到基于TCP/IP协议簇的C/S模式。这种模式希望每一个客户机都与服务器建立TCP连接,服务器轮询监听TC......
  • Golang 中反射的应用与理解
    Golang中反射的应用与理解https://mp.weixin.qq.com/s/TmzV2VTfkE8of2_zuKa0gAGolang中反射的应用与理解原创 赵燕辉 字节跳动技术团队 2022-08-2312:00 发表于......
  • golang for range
    m:=make(map[int]*int)arr:=[]int{1,2,3,4,5}fori,v:=rangearr{m[i]=&v}fork,v:=rangem{fmt.Println(......
  • go语言文件处理-01
    go语言json文件的读写操作JSON是一种使用UTF-8编码的纯文本格式,采用完全独立于语言的文本格式,由于写起来比XML格式方便,并且更为紧凑,同时所需的处理时间也更少,致使JS......