今天看了一下go語言,在講到以往其他語言的異常的時候,go採用了不同的方式
panic 函式類似於丟擲乙個異常,這個異常會中斷當前的執行函式
在 defer 的延遲執行環境中,呼叫 recover() ,如果 recover() 返回的是 nil表示正常執行,如果非 nil 表示這個 defer延遲環境中」捕獲「到了這個 panic
recover() 函式只有在 defer 包裹的執行**塊中能夠使用。
func throwspanic( raisefunc func() ) (b bool)}raisefunc()/* 這裡的**可能會丟擲異常*/
return
}
當在函式 throwspanic 中 raisefunc() 引起panic的時候,defer**塊中的函式會執行,呼叫 recover() 函式
如果存在異常,改變返回值為 true
go 關於指標和位址
經常會見到 p p p 三個符號 p是乙個指標變數的名字,表示此指標變數指向的記憶體位址,如果使用 p來輸出的話,它將是乙個16進製制數。而 p表示此指標指向的記憶體位址中存放的內容,一般是乙個和指標型別一致的變數或者常量。而我們知道,是取位址運算子,p就是取指標p的位址。等會,怎麼又來了個位址,它...
go中關於continue和break的小總結
go中continue和break的區別 在for迴圈中 continue用於跳過繼續的操作,直接從下乙個迴圈開始 break用於直接跳出for迴圈 當i 3時,不輸出 當i 5時,跳出迴圈 會依次列印0,1,2,4 for i 0 i if i 5 0 fmt.println i 在select中...
go學習筆記 Routine和Channel下
上文從基礎層面講解了goroutine 和 channel 關於如何使用都停留下嘴皮子上,因此下篇選用幾個最簡單的例子來鞏固下。另外推薦下自己的個人部落格,你可以先點進行看下內容是否對您有幫助,在選擇收藏或者直接x掉。首先,上文說到channel 有兩種情況 例子從這兩點入手給出。未分配快取pack...