Study of GO
学习 Go 的笔记
变量
强类型和弱类型都可以支持
赋值 - 强类型
//var 变量名 变量类型 = 值
var i int = 1
赋值 - 弱类型
//变量名 := 值
i := 1
根据值来判断类型,所以必须初始化
变量类型
- bool
- string
- int, int8, int16, int32, int64
- uint, uint8, uint16, uint32, uint64
- byte = unit8
- rune = int32(uncode code point)
- float32, float64
- complex32, complex64 (虚数)
格式控制
- %T (要大写)
const
// const 变量名 = 值
const i = 1
//这里没有:
指明变量类型是可选的
const 变量名 变量类型 = 值
const 可以 使用() 形式,同时声明多个变量。
for 和 while
- for
普通 for
for i := 0; i < 10; i++ {
// 这里不需要园括号
}
- while
Go 里的 while 是直接使用同一个关键词 for
i := 1
for i < 100 {
//这里不需要使用分号
}
- forever loop
for {
}
if
if x < 0 {
}
if v:=math.pow(x, n); v < lim {
//可以提前赋值
}
if 条件表达式 {
} else {
}
switch
switch 赋值; 变量 {
case label:
default:
}
// label 可以做运算, 比如:
// case label + 0:
switch {
case 条件表达式:
case 条件表达式:
}
// 可以等价的看做一堆if else 的集合
defer
struct
type Vertex struct {
X int
Y int
Z float32
}
和C差不多。 取消了 -> 访问都是.
以后都是用Vertex 作为变量的名称 如果都没有初始化,那么会提供默认初始化为0。 但是有了一个初始化后,使用 变量初始化 没事。
type Vertex struct {
X, Y int
}
v2 = Vertex{X: 189} // Y:0 is implicit, 结果是 189, 0
如果不使用变量如:
Vertex{1}
// 会报错
Arrays
var 变量名[数组大小] 变量类型
var a [10]int
// 显示声明
变量名:= [数组大小] 变量类型 {值} // 值为空或者少于大小都可
primes := [6]int{2, 3, 5, 7, 11, 13}
Slices
切片 同python