이동 둘러보기가 있습니다. 나는이 같은 https://tour.golang.org/methods/23를 해결했습니다 rot13
가 정확하고 디버그 출력 바로 반환 올바른 문자열을 표시하기 전에23 번째 투어 여행에 대한 해결책이 무엇입니까?
func (old_reader rot13Reader) Read(b []byte) (int, error) {
const LEN int = 1024
tmp_bytes := make([]byte, LEN)
old_len, err := old_reader.r.Read(tmp_bytes)
if err == nil {
tmp_bytes = tmp_bytes[:old_len]
rot13(tmp_bytes)
return len(tmp_bytes), nil
} else {
return 0, err
}
}
func main() {
s := strings.NewReader("Lbh penpxrq gur pbqr!")
r := rot13Reader{s}
io.Copy(os.Stdout, &r)
}
. 하지만 콘솔 출력이없는 이유는 무엇입니까?
고마워요! 출력 매개 변수는 악합니다 ( – devmeow
매개 변수로 전달하지 않으면 사전 할당 된 읽기 버퍼를 사용하기가 어렵습니다. – JimB
이 코드는 올바르지 않습니다 (' 'n, err : = old_reader.r.Read (b)) '를 호출하면, 디코더는 결과를 디코드하지 않습니다. ; rot13 (b [: n]); return n, err'가 더 정확함 –