作為時(shí)下流行的一種系統(tǒng)編程語言,Go 簡單易學(xué),性能很好,且支持各類主流平臺(tái)。已有大量項(xiàng)目采用 Go 編寫,這其中就包括 Docker 等明星作品,其開發(fā)和執(zhí)行效率早已被證明!禛o語言學(xué)習(xí)筆記》經(jīng)四年多逐步完善,內(nèi)容覆蓋了語言、運(yùn)行時(shí)、性能優(yōu)化、工具鏈等各層面知識(shí)。且內(nèi)容經(jīng)大量讀者反饋和校對(duì),沒有明顯的缺陷和錯(cuò)誤。上卷細(xì)致解析了語言規(guī)范相關(guān)細(xì)節(jié),便于讀者深入理解語言相關(guān)功能的使用方法和注意事項(xiàng)。下卷則對(duì)運(yùn)行時(shí)源碼做出深度剖析,引導(dǎo)讀者透徹了解語言功能背后的支持環(huán)境和運(yùn)行體系,諸如內(nèi)存分配、垃圾回收和并發(fā)調(diào)度等。《Go語言學(xué)習(xí)筆記》不適合編程初學(xué)入門,可供有實(shí)際編程經(jīng)驗(yàn)或正在使用Go 工作的人群參考。
傳說中的雨痕老師終于將自己的《Go學(xué)習(xí)筆記》付梓了!
一如既往的低調(diào),也一如既往的務(wù)實(shí)。本書文風(fēng)極簡,干凈利落。
上卷(基于Go 1.6)細(xì)致解析語言規(guī)范相關(guān)細(xì)節(jié),下卷(基于Go 1.5.1)則對(duì)運(yùn)行時(shí)源碼做出深度剖析。
前兩天忙里偷閑將第五版《Go 學(xué)習(xí)筆記》上下冊合并,預(yù)備交給出版社編輯。不經(jīng)意掃了一眼更新記錄,才發(fā)覺四年光陰恍然而過。不知從何時(shí)起,歲月流逝的速度越來越快,抓不得,留不住。
我很擅長堅(jiān)持,不知是因?yàn)楸,還是性情遲鈍的緣故。在給編輯寫作者簡介時(shí),我努力回憶自己最近二十年的經(jīng)歷,好像除了些紛擾的人和事外,就是一段段在不同技術(shù)圈子里日夜探索的記憶,歷久彌新。
現(xiàn)在帶了些學(xué)生,每每交流時(shí),總偷偷慶幸自己是個(gè)先行者,沒有互聯(lián)網(wǎng)的“黑暗時(shí)代”反而造就了踏實(shí)的基礎(chǔ),遠(yuǎn)不是現(xiàn)今亂花迷眼的境況?粗麄儗(duì)于具體實(shí)現(xiàn)“懵懂無知”的表現(xiàn),我對(duì)于寫書這事就愈發(fā)虔誠,生怕誤了別人的光陰和熱情。似乎《學(xué)習(xí)筆記》這個(gè)名字才是最好的詮釋,立不得案頭,權(quán)作閑書,稍能觀感一二即可。
因喜愛 C,故對(duì) Go 關(guān)注得很早。觀望良久,終究受不住誘惑,一頭栽了進(jìn)去。邊學(xué)邊記,于是有了最早的《學(xué)習(xí)筆記》。只因錯(cuò)漏過多,發(fā)到某論壇著實(shí)沒砸出什么水花來。此后,對(duì)于宣傳也淡了心思,再不愿出去,只自己默默更新,或發(fā)到微博,給一些熟識(shí)尚惦記這事的人打個(gè)招呼。
某日,一編輯發(fā)來消息,詢問我是否出版,才恍然知道這書原也是可印的,好像自己從沒想過。猶豫再三,且將幾本筆記從 GitHub 下架。只可惜,因某些理念不同,最終未能如愿,這一拖就是許多時(shí)日。
去年受老謝的邀請(qǐng),前往上海參加 Gopher China 大會(huì)。期間多次被問及何時(shí)能有實(shí)體書出版,熄了許久的心思方又活過來。年中,重新寫了書稿,年底幾乎又重來一遍,心底對(duì)于出書總有些忐忑。直到圣誕節(jié),才放了下冊出來。幸好,并沒有人出來指責(zé)我粗制濫造,方得心安。
我兒小乖還太小,于是猴年我一人回老家過年。也許是在外面太久,對(duì)搬進(jìn)城里的老家全然陌生,每日里除了陪父母吃飯外,其他時(shí)間都用來寫上冊書稿。偶爾透過窗看見遠(yuǎn)處的山影,才找回些幼時(shí)記憶。書寫得意外順利,即便網(wǎng)絡(luò)不算通暢也未能影響到我;鼐┞飞希覐氐锥酥饕,準(zhǔn)備交付出版。
節(jié)后忙于培訓(xùn)一事,書稿校對(duì)稍稍拖后了些。邊按章節(jié)調(diào)整,邊請(qǐng)群里的伙伴們幫忙審校,所幸趕在截止日期前完成。樣稿交到編輯手里,雖尚有些收尾工作,但總算能放輕松些。這于我是個(gè)解脫,困于此的心思總算少了一大半。
依慣例,需在此感謝很多人。其中自然少不了對(duì)我多加鼓勵(lì)的家中太上領(lǐng)導(dǎo)和惦記良久的網(wǎng)絡(luò)眾位大仙們。當(dāng)然,最需感謝的是群里幫忙校對(duì)的小伙伴們,有溺水的魚、大內(nèi)總管、starchou、老虎、日下、小E、春嬸、奮斗娃等等。
讀者定位
本書并不適合用作編程初學(xué)者入門,因內(nèi)容和文體都太過簡練了些。我厚臉推薦給有實(shí)際經(jīng)驗(yàn)或正用 Go 工作的人群,可于路途中當(dāng)閑書翻看幾頁。
聯(lián)系方式
鑒于能力有限,書中難免錯(cuò)漏。如您看到任何問題,請(qǐng)與我聯(lián)系,以便更正。謝謝!
微博:weibo.com/qyuhen
郵件:qyuhen@hotmail.com
社區(qū):qyuhen.bearychat.com
雨 痕
二〇一六年春
自 1996 年從事計(jì)算機(jī)軟件開發(fā)工作以來,已 20 春秋。期間供職于北大方正、西單電子商務(wù)、九城數(shù)碼、知乎等公司。主要從事核心開發(fā)、架構(gòu)設(shè)計(jì),以及部分管理工作。
上卷 語言詳解
第1 章 概述 ................................................................................................................. 3
1.1 特征 ......................................................................................................................... 3
1.2 簡介 ......................................................................................................................... 6
第2 章 類型 ............................................................................................................... 18
2.1 變量 ....................................................................................................................... 18
2.2 命名 ....................................................................................................................... 22
2.3 常量 ....................................................................................................................... 24
2.4 基本類型 ............................................................................................................... 28
2.5 引用類型 ............................................................................................................... 31
2.6 類型轉(zhuǎn)換 ............................................................................................................... 33
2.7 自定義類型 ........................................................................................................... 34
第3 章 表達(dá)式 ........................................................................................................... 38
3.1 保留字 ................................................................................................................... 38
3.2 運(yùn)算符 ................................................................................................................... 38
3.3 初始化 ................................................................................................................... 44
3.4 流控制 ................................................................................................................... 45
第4 章 函數(shù) ............................................................................................................... 59
4.1 定義 ....................................................................................................................... 59
4.2 參數(shù) ....................................................................................................................... 63
4.3 返回值 ................................................................................................................... 67
4.4 匿名函數(shù) ............................................................................................................... 69
4.5 延遲調(diào)用 ............................................................................................................... 76
4.6 錯(cuò)誤處理 ............................................................................................................... 80
第5 章 數(shù)據(jù) ............................................................................................................... 86
5.1 字符串 ................................................................................................................... 86
5.2 數(shù)組 ....................................................................................................................... 95
5.3 切片 ..................................................................................................................... 100
5.4 字典 ..................................................................................................................... 110
5.5 結(jié)構(gòu) ..................................................................................................................... 118
第6 章 方法 ............................................................................................................. 130
6.1 定義 ..................................................................................................................... 130
6.2 匿名字段 ............................................................................................................. 133
6.3 方法集 .....................................