指针

指针 func (w Wallet) Deposit(amount int) { fmt.Println("address of balance in Deposit is", &w.balance) w.balance += amount } 上面的示例,声明一个Deposit方法,接受者是w,如果方法被调用,接受者会被复制返回一个副本,方法体内使用的接受者的副本,所以在方法体内无论如何怎么修改接受者副本的属性,都不会影响到原接受者。 ...

October 18, 2022 · 1 min

数组与切片

数组与切片 数组 初始化数组 申明长度 numbers := [5]int{1,2,3,4,5} 不申明长度 numbers := [...]int{1,2,3,4,5} 切片(长度可变) 概念 不储存数据,只是对底层数组的描述,切片是数组的引用

April 6, 2022 · 1 min

流程控制语句

go的流程控制语句 for 简单for for i := 0; i < 10; i++ { sum += i } for 是 Go 中的 “while” sum := 1 for sum < 1000 { sum += sum } 无限循环 for { } if 正常if if x < 0 { return sqrt(-x) + "i" } 简短if -- 同 for 一样, if 语句可以在条件表达式前执行一个简单的语句。 if v := math.Pow(x, n); v < lim { return v } switch(默认每个case自带break) 有条件的 today := time.Now().Weekday() switch time.Saturday { case today + 0: fmt.Println("Today.") case today + 1: fmt.Println("Tomorrow.") default: fmt.Println("Too far away.") } 无条件的 t := time.Now() switch { case t.Hour() < 12: fmt.Println("Good morning!") case t.Hour() < 17: fmt.Println("Good afternoon.") default: fmt.Println("Good evening.") } defer defer 语句会将函数推迟到外层函数返回之后执行。有点像java的finally 推迟的函数调用会被压入一个栈中。当外层函数返回时,被推迟的函数会按照后进先出的顺序调用。

April 1, 2022 · 1 min
总访问量 总访客数