这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天
接下来是我总结的内容
在 Go 中,变量必须被声明后才能使用,并且未使用的变量会报错。变量可以使用 var 关键字进行定义(var 变量名 变量类型),也可以使用简短声明 := 取代 var 和 type。还可以使用下划线 _ 来声明特殊变量,任何赋予它的值都会被丢弃。
常量可以使用 const 关键字进行定义,并且可以指定类型也可以不指定。
Go 中有一些内置的基础类型,包括 bool、int、float32 和 float64。字符串是不可变的,可以使用 + 来连接字符。错误类型使用 errors.New 来声明,并在判断是否为 nil 时进行处理。
Map 是 Go 中的字典类型,可以使用 make 函数来声明(make(map[string]int)),也可以使用 var 来声明(var numbers map[string]int),可以使用下标赋值和 delete 函数来进行操作。
Go 中的内存分配可以使用 make 和 new 两种方式进行,make 用于内建类型(map、slice 和 channel),new 用于各种类型。
条件判断语句中不需要使用括号。Go 中还有 goto 语句可以跳转到标签所在位置,for 语句是 Go 中的循环语句。
【变量】(已声明但未使用的会报错)
var a int // 定义变量(var 变量名 变量类型)
b := 1 // 简短声明,:=q=取代var和type
_, b := 34, 35 // 下划线是特殊变量,任何赋予的值都会被丢弃
【常量】(可指定类型,也可不)
const Pi = 3.14
【内置基础类型】
bool int float32 float64
【字符串】(字符串是不可变的)
`+` // 连接字符
【错误类型】
err := errors.New("emit macho dwarf: elf header corrupted")
if err != nil {
fmt.Print(err)
}
【map】
numbers := make(map[string]int) // 声明一个key是字符串,值为int的字典,这种方式的声明需要在使用之前使用make初始化
var numbers map[string]int // 另一种map的声明方式
numbers["one"] = 1 //赋值
delete(rating, "C") // 删除key为C的元素
【make和new】
`make`用于内建类型(`map`、`slice` 和`channel`)的内存分配。
`new`用于各种类型的内存分配
【if】(`if`条件判断语句中不需要括号)
if a {
q
} else if b {
w
} else {
e
}
【goto】
A: //这行的第一个词,以冒号结束作为标签
goto A //跳转到A去
【for】
for expression1; expression2; expression3 {
//...
}
break
continue
--【省略`;`,变成`while`的功能】
sum := 1
for sum < 1000 {
sum += sum
}
--【`for`配合`range`可以用于读取`slice`和`map`的数据】
for k,v:=range map {
fmt.Println("map's key:",k)
fmt.Println("map's val:",v)
}