go語言乙個switch的坑

2021-10-12 09:08:17 字數 583 閱讀 9300

今天遇到乙個案例,挺有意思,而且難以置信:

func

alwaysfalse()

bool

func

main()

}

猜一下輸出什麼?對,你猜錯了,真實輸出為true。看到這有一種罵娘的衝動,為啥呀,明明是false的呀。別急,咱們改一下,你要的false就出來了。

func

alwaysfalse()

bool

func

main()

}

發現不一樣的地方了沒?對,就是大括號的問題,這就奇怪了,為啥第一種出現的是true呢?這個還是得從go語言的斷行說起,咱們平時寫**的時候go語言語句結束後是沒有分號的,其實這個只是go語言編輯器自動幫我們新增上了,也就是說第一部分的**其實是這樣的:

func

main()

}

那這個其實是和下面這個等價的:

func

main()

}

這個就正常了,也就可以想通了

Switch語句的乙個坑 乙個妙用

switch有乙個坑比較容易踩,在這裡記錄提醒自己。如下 請問輸出什麼?如果你覺得答案是 i 2那就錯了。要注意,switch語句到case語句之間的 是不會執行的。直接略過,所以case挨著switch寫好了 switch語句通常我們慣性思維case都是從下到大1 n種情況排列下來,不過不要忘記c...

每日乙個Go語言小語法 switch語句

開始第乙個簡單的例子 package main import fmt math func demo1 f float64 func main 上面的例子中 著重介紹的是fallthrough 它的作用是滿足當前case後便不再向後執行,這可以應用到滿足多種條件下輸出指定case package ma...

go語言的坑

package main import fmt func main mp make map int int fmt.println for range 坑 for index,value range slice 根本原因在於for range是用乙個變數承接mp中的內容的 for key,value...