学习golang(day 6)- 指针、结构体
指针go语言中,函数传递都是值拷贝,指针就是一个变量,保存的是内存地址golang的指针很简单,只有两个符号&(取地址) 和*(根据地址取值)举个栗子i := 1 // 取i的地址赋值给一个指针变量 s s := &i // 0xc000014088 // 通过 * 获取指针s所对应的值 newI := *s // 1结构体go语言中没有类的定义,没有继承关系,没有面向对象的概念,结构体可
指针go语言中,函数传递都是值拷贝,指针就是一个变量,保存的是内存地址golang的指针很简单,只有两个符号&(取地址) 和*(根据地址取值)举个栗子i := 1 // 取i的地址赋值给一个指针变量 s s := &i // 0xc000014088 // 通过 * 获取指针s所对应的值 newI := *s // 1结构体go语言中没有类的定义,没有继承关系,没有面向对象的概念,结构体可
复杂函数上回说到,函数可以作为参数传递,函数也可以作为返回值,今天就来体验一下参数为函数func main() { test("张三", sayHello) } func sayHello(name string) { fmt.Println(name) } // 参数作为函数 func test(name string, f func(string)) {
mapshow me the code声明和初始化// make 声明map map1 := make(map[string]string) map1["name"] = "tom" map1["age"] = "18" // 第一个参数为value,第二个参数如果存在,则为true k, isExist := ma
数组声明数组var variable_name [SIZE] variable_type初始化数组方式1,定长var a = [3]int{1, 2, 3} b := [3]int{3, 2, 1}方式2,不定长c := [...]int{3, 2, 1}切片由于数组是不可变的,切片的底层还是数组,只不过是可变长度的数组,自动扩容声明// 声明一个空切片 var a = []int{} b :=
iota和空值// iota 用作常量计数器0开始 const ( a = iota _ c ) fmt.Print(a, c) // 0 2 ,_ 代表舍弃某个值if else 和 if 的前置语句if condiction1 { // Do something }else if condiction2{ // Do something }else {