Go 语言圣经-习题汇总(Go 程序设计语言/The Go Programming Language)
生活随笔
收集整理的這篇文章主要介紹了
Go 语言圣经-习题汇总(Go 程序设计语言/The Go Programming Language)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文針對 Go 語言圣經 - 《Go 程序設計語言/The Go Programming Language》的所有習題進行篩選去重后,選取了一些比較典型的案例(80%以上)進行解析解答,分為兩個版本,分別適合有原書和沒有原書的童鞋進行學習鞏固,本文將持續更新。
原書版
第一章:入門
- 1.1:修改 echo 程序輸出 os.Args[0],即命令的名稱。
- 1.2:修改 echo 程序,輸出參數的索引和值,每行一個。
- 1.3:嘗試測量可能低效的程序和使用 strings.Join 的程序在執行時間上的差異。
- 1.4:修改 dup2 程序,輸出出現重復行的文件的名稱。
- 1.7:函數 io.Copy(dst, src) 從 src 讀,并且寫入 dst。使用它代替 ioutil.ReadAll 來復制響應內容到 os.Stdout,這樣不需要裝下整個響應數據流的緩沖區。確保檢查 io.Copy 返回的錯誤結果。
- 1.8:修改 fetch 程序添加一個 http:// 前綴(假如該 URL 參數缺失協議前綴)。可能會用到 strings.HasPrefix。
- 1.9:修改 fetch 來輸出 HTTP 的狀態碼,可以在 resp.Status 中找到它。
- 1.10:找一個產生大量數據的網站。連續兩次運行 fetchall,看報告的時間是否會有大的變化,調查緩存情況。每一次獲取的內容一樣嗎?修改 fetchall 將內容輸出到文件,這樣可以檢查它是否一致。
- 1.11:使用更長的參數列表來嘗試 fetchall,例如使用 alexa.com 排名前 100 萬的網站。如果一個網站沒有響應,程序的行為是怎樣的?
第二章:程序結構
- 2.1:添加類型、常量和函數到 tempconv 包中,處理以開爾文為單位(K)的溫度值, 0K = -273.15℃,變化 1K 和變化 1 ℃ 是等價的。
- 2.2:寫一個類似于 cf 的通用的單位轉換程序,從命令行參數或者標準輸入(如果沒有參數)獲取數字,然后將每一個數字轉換為以攝氏溫度和華氏溫度表示的溫度,以英寸和米表示的長度單位,以磅和千克表示的重量,等等。
- 2.3:使用循環重寫 PopCount 來代替單個表達式。對比兩個版本的效率。
第三章:基本數據
- 3.10:編寫一個非遞歸的 comma 函數,運用 bytes.Buffer,而不是簡單的字符串拼接
- 3.11:增強 comma 函數的功能,使其正確處理浮點數,以及帶有可選正負號的數字
- 3.12:編寫一個函數判斷兩個字符串是否同文異構,也就是,它們都含有相同的字符但排列順序不同
- 3.13:用盡可能簡潔的方法聲明從 KB、MB 直到 YB 的常量
第四章:復合數據類型
- 4.2:編寫一個程序,用于在默認情況下輸出其標準輸入的 SHA256 散列,但也支持一個輸出 SHA384 或 SHA512 散列的命令行標記
- 4.3:重寫函數 reverse,使用數組指針作為參數而不是 slice
- 4.4:編寫一個函數 rotate,實現一次遍歷就可以完成元素旋轉。
- 4.5:編寫一個就地處理函數,用于去除 []string slice 中相鄰的重復字符串元素
- 4.6:編寫一個就地處理函數,用于將一個 UTF-8 編碼的字節 slice 中所有相鄰的 Unicode 空白字符(查看 unicode.IsSpace)縮減為一個 ASCII 空白字符
- 4.7:修改函數 reverse,來翻轉一個 UTF-8 編碼的字符串中的字符元素,傳入參數是該字符串對應的字節 slice 類型([]byte)。你可以做到不需要重新分配內存就實現該功能嗎?
無原書版
暫無
QQ 學習交流群:646026429
原文地址,歡迎收錄
讀書筆記,歡迎收錄
Go 學習筆記,歡迎收錄
總結
以上是生活随笔為你收集整理的Go 语言圣经-习题汇总(Go 程序设计语言/The Go Programming Language)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PASCAL程序设计语言 PDF 分
- 下一篇: 《Go程序设计语言》- 第12章:反射