zoukankan      html  css  js  c++  java
  • golang (2) package

    综述

    golang package是基本的管理单元,package是golang最基本的分发单位和工程管理中依赖关系的体现.
    每个golang源代码文件开头都拥有一个package声明,表示该golang代码所属的package。
    在golang工程中,同一个路径下只能存在一个package,一个package可以拆成多个源文件组成。
    import关键字导入的是package路径,而在源文件中使用package时,才需要package名。经常可见的import的目录名和源文件中使用的package名一致容易造成import关键字后即是package名的错觉,真正使用时,这两者可以不同。

    使用总结

    package与文件夹:$GOPATH下的每个文件夹,属于同一个package,在同一个文件夹下面只允许有一个package存在。
    package与文件: 该文件夹下面可以包含多个文件,每个文件的头部应包含一个package 声明,表明该文件的package归属,同一个文件夹下面的package归属的名字必须相同。还有默认的init方法,在import进来的时候就去执行了,而且允许每个文件中都有init()这个方法,当然是每个都会执行。每个文件中供外部调用的方法和类型,必须用大写字母做首字母。
    package的调用:使用import包含相应的package,import “package的路径”调用package的方法使用:name.func().,name为package的名称,路径和名称的名字可以不同
    import语法:
    import <package_name> <package_path>
    同一个package下面,可以有非常多的不同文件,只要每个文件的头部都有 如 "package xxx" 的相同name,就可以 在主方法中使用 xxx.Method()调用不同文件中的方法了。
    文件夹名字可以和这个package 名称不一致,
    比如我有个文件夹名字是mypackage,其中包含了a.go,b.go, c.go三个文件 :
    mypackage
    | --a.go
    | --b.go
    | --c.go
    比如a.go中有 Saya(),b.go中有Sayb() 而几个文件共同的package name 确是testpackage
    所以在 主函数中调用a.go 和b.go文件中的各自方法只要用,testpackage.Saya() ,testpackage.Sayb()即可
    还有默认的init方法,在import进来的时候就去执行了,而且允许每个文件中都有init()这个方法,当然是每个都会执行。

    参考链接

    go package
    golang之package

    package 被外部访问的包的变量必须生命为大写:
    否则会报错:unknown myhuman.Human field 'name' in struct literal

    欢迎评论交流
  • 相关阅读:
    关于课程设计、毕业设计的一些总结与思考
    分享一个Panda C-60 维修心得
    未能加载文件或程序集“SuperMap.Data.dll”
    VS2017环境下安装AO10.2的方法
    SQL Server连接错误1326
    VMWare虚拟机中CPU过高的问题
    Apktool编译找不到“keyboardNavigationCluster”
    Aspose.Cells设置单元格格式
    谷歌Chrome浏览器无法安装插件的解决方法
    Global Mapper如何加载在线地图
  • 原文地址:https://www.cnblogs.com/linengier/p/10015851.html
Copyright © 2011-2022 走看看