Let's Go
對於程式設計師來說,程式設計已經變得太難,因為他們希望輕鬆編寫出能夠高效編譯、快速執行的程式。時下沒有哪種語言能夠同時滿足這三個方面。與安全性和效率相比,更加註重輕鬆程式設計的程式設計師,選擇了動態型別的語言,如Python和JavaScript,而不是C++,或者相對舒緩些的Java。
Go語言的設計者在介紹Go專案的目標時指出:“已經十幾年沒有新的系統語言出現了,但此時計算環境發生了巨大變化,出現如下趨勢:
(1) 計算機的執行速度變得極快,而軟體開發速度基本沒變;
(2) 依存管理是今天軟體開發的一大部分,但傳統C語言的標頭檔案卻缺少乾淨的依存分析和快速編譯的特性;
(3) 越來越多的人摒棄了Java和C++等語言笨重的型別系統,轉而選擇使用Python和JavaScript等動態型別系統的語言;
(4) 一些基本概念,例如垃圾回收和平行計算,並未在主流語言中得到充分支援;
(5) 多核計算機的興起導致了擔憂和困擾。”
下面來介紹一下Go語言的與眾不同之處。
(1) Go的介面(interface)型別把需要的功能聚合在一起。沒有繼承層次,只有組合功能。
(2) 強型別系統使犯錯誤的機會大大降低。正確通過編譯,幾乎就沒有什麼 bug 了。
(3) 內建的 string / slice 型別,以及 gc 。這是現代程式設計必須的東西。手動管理未必有更高的效率,但一定有更多的出錯機會。
(4) defer語句是Go語言的一個特色,它註冊的函式,在它所在函式返回時會自動執行。所以,不管Compile函式如何返回,os.Remove都會執行,刪除Create建立的檔案。f.Close()也會執行,關閉並釋放Create佔用的資源。
(5) 零值初始化。很多程式設計師都覺得 C++ 的建構函式特別多餘。按照他們使用 C 的慣例,一切資料結構都應該用 0 初始化。所以 C 裡有 calloc 這個函式。Go 把這點貫徹了。不會再有未定義的資料。
(6) 包系統特別的好。而且嚴格定義了包的初始化過程,即 init 函式。有語言層面的支援就是好。也就是隻有 init 沒有 exit 。
(7) Go的招牌是併發機制。Go的函式可以用go語句併發執行,稱為去程(goroutine)。併發去程的同步與資料傳遞靠的是程道(channel)型別的變數。select語句可以從多個程道中隨機挑選⼀一個不再阻塞的去程執行。
(8) { 要不要獨立佔一行的信仰之爭終於結束了。在 Go 裡,如果你把 { 從 if/for 語言的行末去掉,放在下一行。編譯器是不會讓你通過的。(除非你再加一個 ; )。
鑑於上述優點,我們還有什麼理由不學習Go語言呢!下面就讓本書帶你走進Go語言的世界吧。
相關文章
- Let`s go!Go
- let's go primitiveGoMIT
- Let's VUE[1]Vue
- Let's VUE[2]Vue
- Let's VUE[3]Vue
- Let's call it a "return"
- GitHub 熱點速覽 Vol.35:Let's Go,Rust 大放異彩GithubGoRust
- 【音樂分享】Let Me GoGo
- Why LA let Ariza go awayGo
- Let's Encrypt 泛域名httpsHTTP
- Let's Encrypt,站點加密之旅加密
- Get Let's Encrypt Cert In Five Minutes
- 2010/11/09 一起看電影吧 Let's Go to MoviesGo
- 《Let It Go》之程式設計師之歌Go程式設計師
- let's encrypt 申請 https 證書HTTP
- CentOS 下 Nginx 配置 Let’ s Encrypt 證書CentOSNginx
- 用 Let's Encrypt 和 certbot 搭建 httpsHTTP
- Let It Go (Software Edition) 程式設計師之歌Go程式設計師
- Go's AllocatorGo
- Let's encrypt的TLS-SNI安全問題TLS
- Let's Encrypt 推動了 HTTPS 的普及HTTP
- 使用 Let's Encrypt 保護你的網站網站
- Let’s Encrypt + Nginx + Tornado 開啟 HTTPSNginxHTTP
- 使用Let’s Encrypt實現網站https化網站HTTP
- 申請Let's Encrypt永久免費SSL證書
- Let's Encrypt 泛域名證書申請及配置
- 申請Let's Encrypt萬用字元SSL證書字元
- Let's Encrypt - 免費SSL/TLS證書用起來TLS
- 免費 HTTPS 證書 Let's Encrypt 安裝教程HTTP
- Let's Encrypt 申請免費的 Https 證書HTTP
- docker獲取Let's Encrypt永久免費SSL證書Docker
- 在Docker容器環境中用Let's Encrypt部署HTTPSDockerHTTP
- Let’s Hack非同步Servlet及Servlet3.0新特性非同步Servlet
- Let’s do this!新手程式設計師的入門指南程式設計師
- 用 let's Encrypt 實現 HTTPS 示例( fasthttp 與net/http)HTTPAST
- 免費SSL證書Let's Encrypt的替代:SSL.com
- 下一站 GenAI @上海!碼上出發,Let's 構AI
- 快速使用Let's Encrypt開啟個人網站的https網站HTTP