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

    欢迎评论交流
  • 相关阅读:
    不参加IT培训,如何通过自学的方式成功转行?(蜗牛学院)
    惠普电脑win10关闭自动调节亮度
    原生Ajax发送get、post请求每一步
    HTML5的web 存储localStorage、sessionStorage
    node + multer存储element-ui上传的图片
    html块级元素的水平垂、直居中的方式
    vuex之Mutation(三)
    mint ui的tabBar监听路由变化实现tabBar切换
    Vue使用better-scroll左右菜单联动
    vuex之getter(二)
  • 原文地址:https://www.cnblogs.com/linengier/p/10015851.html
Copyright © 2011-2022 走看看