• 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

    欢迎评论交流
  • 相关阅读:
    曾经写的一些文章,与技术无关,整理出来怀旧,:)
    在VS.NET2003中使用XHTML的插件HTML TIDY 及 MindManger
    把机器退出了域,造成无法启动 MSSQLSERVER ,晕
    hello php!
    今天又看了一下存储过程
    [转]PAGEII携手极速网爱情电影经典对白
    关键词:2005年,世乒赛.上海,乒乓的胜地
    一本SharePoint方面的书,Special Edition Using Microsoft® SharePoint Portal Server
    keo计划
    关于xp_cmdshell 。。注意安全!
  • 原文地址:https://www.cnblogs.com/linengier/p/10015851.html
Copyright © 2020-2023  润新知