# 数组
# 定义
package main
import "fmt"
func main() {
var a = []int32{1, 2, 3, 4}
fmt.Println(a)
}
这个例子中a就是数组,数组是具有相同唯一类型的一组已编号且长度固定的数据项序列。
定义格式如下:var var1 = [size]type{value}
,数组内只能存储同一种数据,不可以像python一样存储多种数据
数字的长度可以不填,代表由值自动决定长度
# 读取
package main
import "fmt"
func main() {
var a = []int32{1, 2, 3, 4}
fmt.Println(a[1])
}
通过在数组后加[index]
就可以访问到指定的值,同理,它也可以被赋值给其他变量
索引从0开始,到长度-1结束。
类型转换下一节再写
package main
import "fmt"
func main() {
var a = []int32{1, 2, 3, 4}
var b = a[1:3]
fmt.Println(b)
}
index可以是[start:end]格式的,但务必注意:切片含头不含尾。
# 改写
package main
import "fmt"
func main() {
var a = []int32{1, 2, 3, 4}
a[1] = 3
fmt.Println(a) // 输出内容:[1 3 3 4]
}
格式:arr[index]=value
使用arr=append(arr,arr...)
来合并数组,...
代表解压切片
package main
import "fmt"
func main() {
var a = []int32{1, 2, 3, 4}
var b = []int32{5, 6, 7, 8}
a = append(a, b...)
fmt.Println(a)
}
# 循环
# for循环格式
首先,go语言没有while循环,只有for循环
格式如下:
for init;condition;post{ code } // 类似于C的for结构
for condition{ code } // 类似于C的while循环
for () // for死循环
init为初始值,condition为布尔表达式,post为自增/减操作符
布尔表达式为满足条件时退出,而非满足条件运行
这是一个输出从1到10数字的程序
package main
import "fmt"
func main() {
for a := 0; a <= 10; a++ {
fmt.Println(a)
}
}
# 遍历
package main
import "fmt"
func main() {
var arr = []int8{1, 2, 3, 4}
for _, value := range arr {
fmt.Println(value)
}
}
go中for遍历数组(或其他容器数据),格式如下:for index,value := range oldMap { code }
索引或值不需要可以用_
代替。
# 类型转换
使用类名+()即可,例如string(var1)