go語言指南的練習

2021-07-23 11:23:34 字數 485 閱讀 4002

對照著指南學習golang

然後做練習題,這裡是來自於其他同學總結的練習的參***

然後想要補充分享是在的練習題中提出的

為什麼fmt.sprint(e)會使程式陷入死迴圈的

func (e errnegativesqrt) error() string
或者

func (e errnegativesqrt) error() string

這麼寫會陷入死迴圈。

仔細想了想,應該是無限遞迴陷入的死迴圈

因為e變數是乙個通過實現error()的介面函式成為了error型別,那麼在fmt.sprint(e)時就會呼叫e.error()來輸出錯誤的字串資訊

於是函式相當於

func (e errnegativesqrt) error() string
從而陷入了無限遞迴之中

Go 指南 練習 Web 爬蟲

在這個練習中,我們將會使用 go 的併發特性來並行化乙個 web 爬蟲。修改crawl函式來並行地抓取 url,並且保證不重複。提示 你可以用乙個 map 來快取已經獲取的 url,但是要注意 map 本身並不是併發安全的!在網路上已經能找到好幾種答案了,有的甚至用上了通道 channel 來幫助實...

Go指南練習(2) slice

實現函式pic,它返回乙個長度為dy的slice,其每個元素是長度為dx 型別為8位無符號整數的slice slice巢狀 當你執行函式pic時,它會把每個slice元素作為對應畫素的灰度值 好吧,其實是藍度 並顯示整個slice對應的影象。計算每個畫素灰度值的方法由你決定,可能用到的方法有 x y...

Go指南練習 迴圈與函式

源位址 為了練習函式與迴圈,我們來實現乙個平方根函式 用牛頓法實現平方根函式。計算機通常使用迴圈來計算 x 的平方根。從某個猜測的值 z 開始,我們可以根據 z 與 x 的近似度來調整 z,產生乙個更好的猜測 z z z x 2 z 重複調整的過程,猜測的結果會越來越精確,得到的答案也會盡可能接近實...