Go入门 - 基础语法

1.Package

  • package是最基本的分发单位工程管理中依赖关系的体现
  • 每个Go语言源代码文件开头都拥有一个package声明,表示源码文件所属代码包;
  • 要生成Go语言可执行程序,必须要有main的Package包,且必须在该包下有main()函数
  • 同一个路径下只能存在一个package,一个package可以拆成多个源文件组成。

2.import

  • import语句可以导入源码文件所依赖的package包
  • 不得导入源码文件中没有用到的package,否则Go语言编译器会报编译错误
  • import语法格式有两种
//第一种
import "package1"
import "package2"
import "package3"
//第二种
import (
    "package1"
    "package2"
    "package3"
)

3. import 原理

  • 如果一个main导入其他包,包将被顺序导入;
  • 如果导入的包中依赖其他包(B包),会首先导入B包,然后初始化B包中的常量和变量,最后如果B包中有init(),会自动执行init();
  • 所有包导入完成后才会对main中常量和变量进行初始化,然后执行main中的init函数(若存在),最后执行main函数;
  • 如果一个包被导入多次则该包只会被导入一次。

4.import 别名: "." , "_"

  • 别名操作的含义是:将导入的包命名为另个一个容易记忆的别名;
  • 点(.)操作的含义是:点(.)标识的包导入后,调用该包中函数时可以省略前缀包名
  • 下划线(_)操作的含义是:导入该包,但不导入整个包,而是执行该包中的init函数,因此无法通过包名来调用包中的其他函数,使用下划线(_)操作,往往是为了注册包中的引擎,让外部可以方便的使用。

5.数据类型

  • 整型、浮点型、复数、字符串和布尔
    • uint8、uint32、uint64、int8、int32、int64、float32、float64、complex64、complex128、byte、rune、uint、int、unitptr
  • 派生类型
    • 指针类型(Pointer)、数组类型、结构化类型(struct)、Channel(chan)、函数类型(func)、切片类型(slice)、接口类型(interface)、Map类型(map)
  • 类型零值和类型别名
    • 类型零值不是空值,而是某个变量被声明后的默认值,一般情况下,值类型的默认值为0,布尔类型默认值为false,String默认值为空字符串。我们也可以对类型设置别名。
  • 类型存储大小

猜你喜欢

转载自blog.csdn.net/zhengwish/article/details/87558678