本文章記錄go學習過程中的一些容易忽視的地方。
package main
import
"fmt"
// 會先把defer全部出棧,看有沒有recover defer出完之後,沒有recover,則報錯
func
main1()
()defer
func()
()defer
func()
()panic
("觸發異常")}
func
calc
(index string
, a, b int
)int
// 注意記憶體出棧順序
func
main()
package main
import
"fmt"
func
main()
s2 :=
int s1 =
(s1, s2...
)// 正確寫法
fmt.
println
(s1)
}
package main
import
"fmt"
// 結構體是否相同,不僅和結構體的屬性相關,也和屬性的順序有關
// 並且需要結構體的屬性都是可比較的時候,結構體才能比較
// map是不可比較的
func
main()
sn2 :=
struct
if sn1 == sn2
}
package main
// 常量不能使用自動推導
var(
//size := 1024
//max_size = size * 2
)func
main()
package main
import
"fmt"
// 擷取的話,是在原有基礎上進行擷取的
func
main()
s1 := arr[2:
6]s2 := s1[3:
6]fmt.
println
("s1=="
, s1)
fmt.
println
("s2=="
, s2)
}
s1== [3 4 5 6]
s2== [6 7 8]
package main
import
"fmt"
// iota是換行加1
const
( x =
iota
y z =
"zz"
k p =
iota
)func
main()
01zz
zz4
Go語言高能踩坑記錄 通道
使用go通道,經常會遇到死鎖錯誤,根據我所遇到做了以下整理 fatal error all goroutines are asleep deadlock 看下面這段 package main import fmt func main 執行會丟擲錯誤,如下 fatal error all gorout...
go學習踩坑實錄
對於query而言,沒有資料是不會返回error,同時sql.rows也沒有返回關於長度的屬性,因此只能自己遍歷rows屬性,這是比較操蛋的事情,對比而言queryrow就相對於友好一點,如果沒有返回結果,error的值會是sql.errnorows,因此,判斷這個值就能得到資料庫中是否有我們需要的...
GO 切片實力踩坑
go 語言的切片這兩天用了用,可以支援切割陣列的中間部分.但今天使用中,出了 bug,查了半天,發現是切片的問題,簡單寫個 demo 復現當時的情況 package main import fmt func main b a 2 4 b 0 9 fmt.println a 你以為輸出的是什麼?來,看...