這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
一.語言的主要特性與發展的環境和影響因素
這個文章作者寫的很好,從影響go發展的早期語言,為什麼需要一個新語言,go語言的目標,go語言的設計思想,用途,特性等,都做了很好的講解.
學習總結:
1.go也屬於c系語言,但是又汲取了其它語言的精粹部分(有點王婆賣瓜的味道),比如包和聲明方面(Pascal、Modula 和 Oberon),並發設計(通訊序列進程Communicating Squential Processes,Limbo 和 Newsqueak,Erlang),go有著類c的文法,但又更為簡潔,還有一些動態語言的特性.PS:它是開源的
2.Go 語言:快速編譯,高效執行,易於開發,
3.Go 語言的主要目標是將靜態語言的安全性和高效性與動態語言的易開發性進行有機結合,Go 語言的另一個目標是對於網路通訊、並發和並行編程的極佳支援,從而更好地利用大量的分布式和多核的電腦,Go 語言中另一個非常重要的特性就是它的構建速度,Go 語言在執行速度方面也可以與 C/C++ 相提並論,go有垃級回收機制使用標記清除演算法,還可以進行反射操作,支援調用c的庫言檔案
4,go只有25個關鍵字,也是通過減少關鍵字數量使得代碼更為簡潔,
5.go沒有類和繼承的概念,但是可以通過介面interface實現多態性,函數是其基本構件,它是表態類型的,是型別安全的喲,它不允許隱式轉換類型 ,這是第一個安全支援UTF-8的語言,做到了真正的國際化,
6.一些消失的特性
為了簡化設計,不支援函數重載和操作符重載
為了避免在 C/C++ 開發中的一些 Bug 和混亂,不支援隱式轉換
Go 語言通過另一種途徑實現物件導向設計(第 10 - 11 章)來放棄類和類型的繼承
儘管在介面的使用方面(第 11 章)可以實作類別似變體類型的功能,但本身不支援變體類型
不支援動態載入代碼
不支援動態連結程式庫
不支援泛型
通過 recover
和 panic
來替代異常機制(第 13.2 - 3 節)
不支援斷言
不支援靜態變數原文中對go的總結很好,引用一下,還有go的用途我沒有做總結
簡化問題,易於學習
記憶體管理,簡潔文法,便於使用
快速編譯,高效開發
高效執行
並發支援,輕鬆駕馭
靜態類型
標準類庫,規範統一
易於部署
文檔全面
免費開源