# 引言
go被創建成一種系統語言(比如,操作系統和設備驅動),go是針對C/C++開發者的。據go核心開發組說,我可以確定是真的,應用程序開發者已經成為主要的go語言用戶,而不是系統開發者。為什么呢?我不能代表所有的系統開發人員,但是,對于構建網站、服務和桌面應用等而言,主要歸結于一類新興系統的需求,這類系統介于低級系統應用和高級系統應用之間。
可能go語言有消息傳遞機制、帶緩存、重計算數據分析、命令行接口、日志或監控,我不知道給go語言什么樣的標簽,但是在我的職業生涯中,由于系統持續增長的復雜性和成千上萬種常用的并發方式,很明顯,定制基礎設施系統,是一個不斷增長的需求。你可以用ruby或python或別的語言建立這樣的系統(好多人這么做),但是這類系統受益于更嚴格類型系統和更高性能。同樣地,你可以用go語言構建網站(也有好多人這么做),但是話又說回來,我還是喜歡通過表達性更強的Node或Ruby來實現這樣的系統。
go語言還擅長于其他的領域。比如,當運行一個編譯過的go程序時,它沒有依賴性。你不必擔心用戶是否安裝了ruby或者jvm,而且如果是這樣,還要考慮是什么版本。出于這個原因,go作為命令行界面程序和其他并發類型應用程序的開發語言(例如日志收集),變得越來越流行。
坦白地說,學習go語言可以有效的利用你的時間。你不必花大量的時間去學習或者掌握它,你從你的努力中最終會得到一些實用的東西。
## 作者注解
據我說知,前面這些章節,我不能再做出相同的假設。你花多長時間學習接受并理解它,這是個新的概念。比起go語言擁有的接口,其他人家是否需要更多?最終,如果你告訴我本書那些地方太淺或者太詳細,考慮到這本書的價值,我會感到欣慰。
## 鏈接
作者博客: [海濤的博客](http://blog.geeknr.com)
- 關于本書
- 引言
- 準備工作
- 安裝開發環境
- 開始使用Go
- 創建一個Go模塊
- 第1章:基礎知識
- 1.1 編譯
- 1.2 靜態類型
- 1.3 類c語法
- 1.4 垃圾回收
- 1.5 運行go代碼
- 1.6 導入包
- 1.7 變量和聲明
- 1.8 函數聲明
- 1.9 繼續之前
- 第2章:語法學習
- 2.1 聲明和初始化
- 2.2 結構體上的函數
- 2.3 構造函數
- 2.4 new
- 2.5 結構體字段
- 2.6 組合
- 2.7 指針類型和值類型
- 2.8 繼續之前
- 第3章:復雜類型
- 3.1 數組
- 3.2 切片
- 3.3 映射
- 3.4 指針類型和值類型
- 3.5 繼續之前
- 第4章:面向對象
- 4.1 包
- 4.2 接口
- 4.3 繼續之前
- 第5章:綜合知識
- 5.1 錯誤處理
- 5.2 defer
- 5.3 go語言風格
- 5.4 初始化的if
- 5.5 空接口和轉換
- 5.6 字符串和字節數組
- 5.7 函數類型
- 5.8 內存分配
- 第6章:高并發
- 6.1 go協程
- 6.2 同步
- 6.3 通道
- 6.4 繼續之前
- 第7章:工具庫
- 7.1 類型轉換
- 7.2 時間操作
- 第8章:程序測試
- 單元測試
- 性能測試
- 第9章:簡單實例
- 內存分配
- 第10章:項目實戰
- 結論
- 附錄