日常 go語言聖經 獲取URL練習題

2021-09-27 09:05:58 字數 1345 閱讀 9944

1.主要使用net/http和io/ioutil包

2.http.get函式是建立http請求的函式,resp這個結構體中,body欄位包括乙個可讀的伺服器響應流

3.ioutil.readall函式從response中讀取到全部內容,resp.body.close關閉resp的body流

4.用os.exit函式來終止程序,並且返回乙個status錯誤碼

5.使用fprintf與表示任意型別預設格式值的動詞%v,向標準錯誤流列印一條資訊

6.strings.hasprefix(s, prefix string) bool,判斷字串s是否以prefix 開頭

練習 1.7: 函式呼叫io.copy(dst, src)會從src中讀取內容,並將讀到的結果寫入到dst中,使用這個函式替代掉例子中的ioutil.readall來拷貝響應結構體到os.stdout,避免申請乙個緩衝區(例子中的b)來儲存。記得處理io.copy返回結果中的錯誤。

練習 1.8: 修改fetch這個範例,如果輸入的url引數沒有 http:// 字首的話,為這個url加上該字首。你可能會用到strings.hasprefix這個函式。

練習 1.9: 修改fetch列印出http協議的狀態碼,可以從resp.status變數得到該狀態碼。

fetch.go

package main

//匯入io/ioutil和net/http包

//判斷錯誤

if err != nil

//輸出http code

//避免申請乙個緩衝區,直接到標準輸出流

io.copy(os.stdout, res.body)

//判斷錯誤

if err != nil

res.body.close()

//輸出http code

日常 GO語言聖經 併發獲取多個URL

go語言聖經 併發獲取多個url 1.go最新奇的特性就是對併發程式設計的支援,goroutine和channel 2.goroutine是一種函式的併發執行方式,而channel是用來在goroutine之間進行引數傳遞 go function則表示建立乙個新的goroutine,並在這個新的go...

go語言聖經練習

練習 3.10 編寫乙個非遞迴版本的comma函式,使用bytes.buffer代替字串鏈結操作。package main import fmt os bytes func main func comma s string string return buf.string view code 練習 ...

日常 Go語言聖經 Map習題

練習 4.8 修改charcount程式,使用unicode.isletter等相關的函式,統計字母 數字等unicode中不同的字元類別。練習 4.9 編寫乙個程式wordfreq程式,報告輸入文字中每個單詞出現的頻率。在第一次呼叫scan前先呼叫input.split bufio.scanwor...