go語言筆記——是c開發的 lex yacc進行詞法和語法分析,go不支持函數和運算符重載,不支持類型繼承,也不支持斷言,還有泛型


從 Go 1.0.3 版本開始,不再使用 8g,8l 之類的指令進行程序的構建,取而代之的是統一的 go build 和 go install 等命令,而這些指令會自動調用相關的編譯器或鏈接器。

如果你想獲得更深層次的信息,你可以在目錄 $GOROOT/src/cmd 下找到編譯器和鏈接器的源代碼。Go 語言本身是由 C 語言開發的,而不是 Go 語言(Go 1.5 開始自舉)。詞法分析程序是 GNU bison,語法分析程序是名為 $GOROOT/src/cmd/gc/go.y 的 yacc 文件,它會在同一目錄輸出 y.tab.{c,h} 文件。如果你想知道更多有關構建過程的信息,你可以在 $GOROOT/src/make.bash 中找到。

 

 

摘自:https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/02.1.md

 

go不支持的特性:

許多能夠在大多數面向對象語言中使用的特性 Go 語言都沒有支持,但其中的一部分可能會在未來被支持。

  • 為了簡化設計,不支持函數重載和操作符重載
  • 為了避免在 C/C++ 開發中的一些 Bug 和混亂,不支持隱式轉換
  • Go 語言通過另一種途徑實現面向對象設計(第 10-11 章)來放棄類和類型的繼承
  • 盡管在接口的使用方面(第 11 章)可以實現類似變體類型的功能,但本身不支持變體類型
  • 不支持動態加載代碼
  • 不支持動態鏈接庫
  • 不支持泛型
  • 通過 recover 和 panic 來替代異常機制(第 13.2-3 節)
  • 不支持斷言
  • 不支持靜態變量

關於 Go 語言開發團隊對於這些方面的討論,你可以通過 Go 常見問題 頁面查看。

1.2.8 使用 Go 語言編程

  • 簡化問題,易於學習
  • 內存管理,簡潔語法,易於使用
  • 快速編譯,高效開發
  • 高效執行
  • 並發支持,輕松駕馭
  • 靜態類型
  • 標准類庫,規范統一
  • 易於部署
  • 文檔全面
  • 免費開源

 

轉自:https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/01.2.md


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM