# 数组

# 定义

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)

更新于