zoukankan      html  css  js  c++  java
  • go语言入门:包

      示例代码:

    package main
    
    import "fmt"
    
    func main() {
        fmt.Println("hello, world")
    }

    1. 包

    1.1 概念

      go中包的概念相当于Java中的类;

      一个go文件只属于一个包,一个包可以包含多个go文件;

      每个go文件的非注释的第一行都是用 package  xxx;  表名这个文件属于哪个包;

      package  main 表示一个可独立执行的程序,相当于Java中的主类(main方法所在的类);

      包名都应该使用小写字母;

      根据惯例,每个目录下只包含一个包的文件;

    1.2 包的依赖关系

      go中的包模型采用显示依赖关系的机制达到快速编译的目的,这种机制在编译大型项目时可以显著提升编译速度,编译器只需要从后缀为 o 的文件中中提取依赖关系

      如果 a.go 依赖 b.go,b.go依赖c.go,则先编译 c.go,再编译 b.go,最后编译 a.go;

    1.3 导包

      go程序通过 import 关键字将多个包链接到一起,如果一个go源文件需要使用其他包公开声明的变量或者函数,则需要通过 import 关键字将需要的包导入到当前文件;

      导包的方式一般为 :import   "包名"

    import  "fmt"
    import  "os"
    
    或者
    
    import "fms"; import "os"
    
    或者
    
    import(
       "fmt"
       "os"

    或者
    这种形式在使用 gofmt 后会被强制换行
    import ("fmt";"os")

      导包时如果以 ./开头,则在相对目录中查找;

      如果以 / 开头,则在绝对路径中查找;

      如果只导入包名,则在全局文件中查找;

      包名冲突

      导包时可以通过路径定位包的位置,所以可能存在不同路径下相同的包名,而在使用其它包时又需要以包名.标识符的形式使用,此时可以使用别名的方式用于区分两个包

    package main
    
    import fm "fmt" // alias3
    
    func main() {
       fm.Println("hello, world")
    }

      如果导入了一个包却没有使用它,则在构建程序时引发错误 imported and not used:os

    1.4 可见性规则

      可见性规则即上面提到的 其他包公开声明的变量或者函数;

      将一个包导入当前文件后,只可以使用该包中公开声明的比那辆或者函数;

      当标识符(包括常量,变量,函数名,结构字段,类型等)以大写字母开头,这种标识符的对象就可以被其他包使用,相当于Java中的 public;

      其他的对象则不能被其他包使用,只能在本包内使用,相当于Java中的 private;

      使用其他包的变量或者函数时,必须以 包名.变量名 或者 包名.函数名 的形式使用,假如要使用 date包中的 Hour 变量,则需要以 date.Hour 的形式调用;

      

  • 相关阅读:
    在路上——7月英语
    Today is a special day for English Topic
    三级网络-不单单是学知识
    停下是为了更好的出发
    量变引发质变--【2015年计算机年终总结】
    这个月,小美很忙
    一个人牛逼不如一群人一起牛逼——致我最亲爱的程序员
    掀起你的盖头来--【2015年英语年终总结】
    平凡之路之小美
    小美的猴年年中总结,挪不开眼~
  • 原文地址:https://www.cnblogs.com/virgosnail/p/12879511.html
Copyright © 2011-2022 走看看