上次用scala寫了個爬蟲。最近在閒工夫之時,學習go語言,便用go移植了那個用scala寫的爬蟲,**如下:
**行數比scala版的有一定增加,主要原因有以下幾方面原因:
1 golang 重視**書寫規範,或者說**格式,很多地方寫法比較固定,甚至比較麻煩。比如就算是if判斷為真後的執行語句只有一句話,按照**規範,也要寫出帶大括號的三行,而在scala和很多其他語言中,一行就行;
2 golang 的strings包和regexp包提供的方法並不特別好用,特別是和scala相比,使用起來感覺scala的正則和字串處理要舒服的多;
3 scala版的爬蟲裡面用到了scala標準庫中的實用類和方法,它們雖然不是語法組成,但用起來感覺像是語法糖,這裡很多方法和函式式程式設計有關,golang的函式式程式設計還沒有去仔細學習。
當然golang版的爬蟲也有乙個優勢,就是編譯速度很快,執行速度在現在的寫法裡面體現不出優勢;golang的特性goroutine在這裡沒有用到,這段**今後會不斷改進。
(一)golang 初識go語言
使用1.9.2的版本 golang golanguage的簡稱 也就是go語言 可以應用於區塊鏈研發工程師 go伺服器端 遊戲軟體工程師 golang分布式 雲計算軟體工程師等。google為什麼要建立go語言?1 計算機硬體技術更新頻繁,效能提公升很快,主流的程式語言不能合理利用多核多cpu的優勢...
Golang 基礎 Go 語言的指標
變數是一種使用方便的佔位符,用於引用計算機位址,而在 go 語言中可以通過 符號獲取乙個變數在計算機中對應的記憶體位址。package basic import fmt func main 乙個指標變數指向了乙個值的記憶體位址。go 語言中的指標語法與 c 類似,都是使用 符號宣告指標變數 pack...
Golang 基礎 Go 語言的陣列
package basic import fmt func declaratarray fmt.println arr2 定義指定長度的陣列,並賦值 arr3 2 int fmt.println arr3 1 5 package basic import fmt func declaratarray...