数组
go语言提供了数组类型的数据结构 是一个固定长度的集合,可以通过索引来读取数据数组的声明与使用
Copy
表达式var 数组名称 [数组大小]数组类型1.初始化赋值var numbers = [5]int{1, 2, 3, 4, 5}2.长度不确定的时候//我们可以通过...去代替数组长度var balance = [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}3.指定下标去初始化元素balance := [5]float32{1:2.0,3:7.0}
指针
其实我们平时在程序中的每一个值在内存中都会有对应的地址,这个地址被称之为内存地址,我们可以把我们的值想象成一个房子,而内存地址就是这个房子的门牌号 指针变量 :指向值的内存地址 在go中要取到内存地址是非常简单的,仅仅只需要一个符号就可以获取到对应的地址:&Copy
package mainimport "fmt"func main() {var a int = 10fmt.Printf("变量的地址: %x\n", &a )}
指针变量的声明
Copy 作用:可以在函数传参的时候作为引用传递进行传递,可以达到节省空间的作用 引用传递:只传递内存地址,而不是将值复制一份在进行传递 例子:
声明格式var 名称 *类型ex:var ip *int
Copy
package mainimport "fmt"func main() {a := 1b := 2fmt.Println(&a)fmt.Println(&b)Test(a, &b)}func Test(a int, b *int) {fmt.Println(&a)fmt.Println(*b)}
结构体
结构体:由一系列具有相同类型或不同类型的数据构成的数据集合。 我们可以将结构体理解成一个箱子,然后我们准备在这个箱子中放很多水果,我们预定这个位置放苹果,另外一个位置放梨,另另外一个位置放桃子,注意是先预定位置,而不是真正的放入水果 当我们程序走到某个地方之后,我们需要创建对应的结构体实例之后,这个结构体才能被真正的使用起来(也就是等于真正的放了水果进去) 例子:
package mainimport "fmt"//定义一个箱子type Fruit struct {apple intpear stringpeach [1]string}func main() {p := [1]string{"test",}//放入水果fruit := Fruit{1, "test", p,}//使用fmt.Println(fruit.pear)fmt.Println(fruit.apple)fmt.Println(fruit.peach[0])}
