Go指南練習 rot13Reader

2022-06-29 23:21:11 字數 882 閱讀 8998

題目:

練習:rot13reader

有種常見的模式是乙個 io.reader 包裝另乙個 io.reader,然後通過某種方式修改其資料流。

例如,gzip.newreader 函式接受乙個 io.reader(已壓縮的資料流)並返回乙個同樣實現了 io.reader 的 *gzip.reader(解壓後的資料流)。

編寫乙個實現了 io.reader 並從另乙個 io.reader 中讀取資料的 rot13reader,通過應用 rot13 代換密碼對資料流進行修改。

rot13reader 型別已經提供。實現 read 方法以滿足 io.reader。

package main

import (

// "errors"

"io"

"os"

"strings"

)type rot13reader struct

func (r13 rot13reader) read(b byte) (int, error) 這裡新造乙個位元組切片接受,會導致程式卡住

r, err := r13.r.read(b)

for i, v := range b else

case 97 <= v && v <= 122:

new_v := v + 13

if new_v <= 122 else

// 這裡丟擲異常也會卡住執行很久

// default:

// return 0, errors.new("not alphabet")

} }return r, err

}func main()

io.copy(os.stdout, &r)

}

go語言指南的練習

對照著指南學習golang 然後做練習題,這裡是來自於其他同學總結的練習的參 然後想要補充分享是在的練習題中提出的 為什麼fmt.sprint e 會使程式陷入死迴圈的 func e errnegativesqrt error string或者 func e errnegativesqrt erro...

Go 指南 練習 Web 爬蟲

在這個練習中,我們將會使用 go 的併發特性來並行化乙個 web 爬蟲。修改crawl函式來並行地抓取 url,並且保證不重複。提示 你可以用乙個 map 來快取已經獲取的 url,但是要注意 map 本身並不是併發安全的!在網路上已經能找到好幾種答案了,有的甚至用上了通道 channel 來幫助實...

Go指南練習(2) slice

實現函式pic,它返回乙個長度為dy的slice,其每個元素是長度為dx 型別為8位無符號整數的slice slice巢狀 當你執行函式pic時,它會把每個slice元素作為對應畫素的灰度值 好吧,其實是藍度 並顯示整個slice對應的影象。計算每個畫素灰度值的方法由你決定,可能用到的方法有 x y...