【类型】
1、可以包含数据的变量(或常量),可以使用不同的数据类型或类型来保存数据。使用 var 声明的变量的值会自动初始化为该类型的零值。类型定义了某个变量的值的集合与可对其进行操作的集合。
2、基本类型
int、float、bool、string;结构化的(复合的),如:struct、array、slice、map、channel;
只描述类型的行为的,如:interface。
结构化的类型没有真正的值,它使用 nil 作为默认值
函数也可以是一个确定的类型,就是以函数作为返回类型
3、可以自己定义自己的类型:
tpye IZ int
var a IZ = 5
多个类型的定义
type(
IZ int
FZ float64
STR string
)
【程序结构】
1、结构顺序:
在完成包的 import 之后,开始对常量、变量和类型的定义或声明
如果存在 init 函数的话,则对该函数进行定义(这是一个特殊的函数,每个含有该函数的包都会首先执行这个函数)
如果当前包是 main 包,则定义 main 函数
然后定义其余的函数,首先是类型的方法,接着是按照 main 函数中先后调用的顺序来定义相关函数,如果有很多函数,则可以按照字母顺序来进行排序
2、import
import “fmt” 或者 import fm "fmt"
【程序执行顺序】
- 按顺序导入所有被 main 包引用的其它包,然后在每个包中执行如下流程:
- 如果该包又导入了其它的包,则从第一步开始递归执行,但是每个包只会被导入一次。
- 然后以相反的顺序在每个包中初始化常量和变量,如果该包含有 init 函数的话,则调用该函数。
- 在完成这一切之后,main 也执行同样的过程,最后调用 main 函数开始执行程序。
【常量】
常量的定义格式:const identifier [type] = value
在 Go 语言中,你可以省略类型说明符 [type],因为编译器可以根据变量的值来推断其类型。
显式 const a string = "abc"
隐式const a = "abc"
常量的值必须是能够再编译时就能够确定的
正确 const c1 = 3
错误 const c2 = getNumber() // 在编译期间自定义函数属于未知,因此无法用于常量的赋值,但内置函数可以使用,如len()
常量的几种常用定义
const a,b,c = "a","b","c"
const (
Monday,Tuesday,Wednesday = 1,2,3
Thursday,Friday,Saturday = 4,5,6
)
const (
Unknown = 0
Female = 1
Male = 2
)
学习参考处:https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/directory.md