Go语言学习笔记 - PART2 - 基本结构

263 阅读2分钟

文件名

  • 小写字母组成,多个小写字母通过下划线_分隔
  • 不包含空格或其他特殊字符

标识符

  • 无效标识符
    • 数字开头
    • Go的关键字
    • 运算符
  • 区分大小写
  • 空白标识符_
    1. 可用于变量声明或赋值
    2. 任何赋值给这个标识符的值都将被抛弃
  • 匿名变量
  • 关键字
  • 预定义标识符
  • 大小写可见性规则
    • 大写字母开头,函数/变量可以被外部包调用,遵循Pascal命名法
    • 小写字母开头,函数/变量只能在内部包调用,遵循驼峰命名法

  • 每个程序都由包组成
  • package main表示一个可独立执行的程序
  • 包使用小写字母命名
  • 是编译的最小单位

如果对一个包进行更改或重新编译,所有引用这个包的客户端都必须全部重新编译

  • 通过import关键字导入包

标准库

Go安装目录下可直接使用的包

  • 存放在$GOROOT/pkg/$GOOS_$GOARCH/目录下

函数

  • func funcName()

注释

跟Java一样

类型转化

  • 必须显式说明,Go不存在隐式的类型转化
valueOfTypeB = typeB(valueOfTypeA)

常量

  • 通过const关键字定义,用于存储不会改变的数据
const identifier [type] = value
  • 可用于枚举类型
const (
	Unknown = 0
	Female = 1
	Male = 2
)
  • iota
const (
	a = iota
	b = iota
	c = iota
)

第一个iota等于0,每当iota在新的一行被使用时,它的值都会自动加1,每次遇到const关键字,都会重置为0

变量

  • 变量声明形式
var identifier type
  • 声明包级别的全局变量
var (
	HOME = os.Getenv("HOME")
	USER = os.Getenv("USER")
	GOROOT = os.Getenv("GOROOT")
)
  • 在函数体内声明局部变量
a := 1
  • 变量命名规则 - 驼峰命名法
  • Go编译器可以在编译时根据变量的值,自动推断其类型
  • 值类型,引用类型
  • init函数初始化变量
    • 不能手动调用,在每个包完成初始化后自动执行,执行优先级高于main函数
    • 每个源文件只能包含一个init函数
    • init函数单线程执行,按照包的依赖关系顺序执行
func init() {
   // init() function
}

入门教程推荐: github.com/Unknwon/the…