go之包

包的创建和管理

  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就可以

posted @ 2022-08-29 16:07  那就凑个整吧  阅读(57)  评论(0编辑  收藏  举报