Golang学习笔记—数组篇

声明

方式一

先声明在赋值

var numbers = [3]int{}
numbers[0] = 1
numbers[1] = 2
numbers[2] = 3
for _, i := range numbers {
   fmt.Println(i)
}

方式二

声明+赋值

var numbers = [3]int{1, 2, 3}
for _, i := range numbers {
   fmt.Println(i)
}

方式三

声明+赋值+指定位置

var numbers = [3]int{0: 1, 2: 3}
for _, i := range numbers {
   fmt.Println(i)
}

没给索引1赋值,所以结果:

1
0
3

方式四

可变长数组,用…代替个数定义

var numbers = [...]int{0: 1, 2: 3}
for _, i := range numbers {
   fmt.Println(i)
}

长度索引切片循环

//1.长度
name1 := []string{"Sentiment", "111"}
fmt.Printf("1、长度:%v\n", len(name1))

//2.索引
name2 := []string{"Tana", "222"}
data2 := name2[0]
fmt.Printf("2、索引0:%v\n", data2)

//3.切片
name3 := [3]int{1, 2, 3}
data3 := name3[0:2]
fmt.Printf("3、切片[0:2]:%v\n", data3)

//4.循环
name4 := [3]int{1, 2, 3}
fmt.Printf("4、普通循环:")
for i := 0; i < len(name4); i++ {
   fmt.Printf("%v ", name4[i])
}
fmt.Println()

//for range循环
name5 := [3]int{4, 5, 6}
fmt.Printf("5、for range循环:")
for _, i := range name5 {
   fmt.Printf("%v ", i)
}

结果:

1、长度:2
2、索引0:Tana
3、切片[0:2][1 2]
4、普通循环:1 2 3 
5for range循环:4 5 6 

多维数组

声明

定义后默认值为[ [0,0,0] [0,0,0] ]

var nums = [2][3]int{}

赋值

nums[0] = [3]int{1, 2, 3}
nums[1][1] = 666

demo

var nums = [2][3]int{}
nums[0] = [3]int{1, 2, 3}
nums[1][1] = 666
fmt.Println(nums)

结果:

[[1 2 3] [0 666 0]]

声明+赋值

var nums = [2][3]int{[3]int{1, 2, 3}, [3]int{4, 5, 6}}
fmt.Println(nums)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是 golang 学习笔记,希望对你有帮助: ### 1. 基本语法 - 包声明:每个 Go 程序都是由多个包组成,使用 `package` 声明包名。 - 引入包:使用 `import` 关键字引入需要的包。 - 函数:使用 `func` 关键字声明函数,函数可以有多个返回值。 - 变量:使用 `var` 关键字声明变量。 - 常量:使用 `const` 关键字声明常量。 - 控制语句:Go 语言支持条件语句和循环语句,例如 `if`、`switch`、`for` 等。 ### 2. 数据类型 Go 语言支持以下数据类型: - 布尔型:`bool` - 数字类型:`int`、`int8`、`int16`、`int32`、`int64`、`uint`、`uint8`、`uint16`、`uint32`、`uint64`、`uintptr`、`float32`、`float64`、`complex64`、`complex128` - 字符串类型:`string` - 派生类型:`array`、`slice`、`map`、`struct`、`interface`、`channel` ### 3. 函数 Go 语言中的函数可以有多个返回值,可以使用命名返回值来使函数更加清晰易读。例如: ```go func swap(x, y string) (string, string) { return y, x } ``` ### 4. 数组和切片 Go 语言中的数组和切片都是支持多维的。数组和切片的区别在于数组长度是固定的,而切片长度可以动态变化。例如: ```go // 声明数组 var a [5]int // 声明切片 var s []int s = append(s, 1, 2, 3) ``` ### 5. 结构体 结构体是一种自定义的数据类型,可以包含多个不同类型的字段。例如: ```go type person struct { name string age int } func main() { p := person{"Bob", 20} fmt.Println(p.name, p.age) } ``` ### 6. 接口 接口定义了一组方法的集合,只要某个类型实现了接口中定义的所有方法,就可以认为它实现了这个接口。例如: ```go type Shape interface { area() float64 } type Circle struct { x, y, r float64 } func (c Circle) area() float64 { return math.Pi * c.r * c.r } func main() { var s Shape s = Circle{x: 0, y: 0, r: 5} fmt.Println(s.area()) } ``` ### 7. 并发 Go 语言使用协程来实现并发,协程是一种轻量级的线程,可以在一个线程中同时执行多个协程。例如: ```go func main() { go say("world") say("hello") } func say(s string) { for i := 0; i < 5; i++ { time.Sleep(100 * time.Millisecond) fmt.Println(s) } } ``` 以上就是 golang 学习笔记的主要内容,希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值