Go語言容易踩的坑

2021-10-04 08:15:26 字數 1547 閱讀 5770

本文章記錄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 你以為輸出的是什麼?來,看...