2016-03-15 61 views
0

當錯誤爲零時,ReadRune是否真的具有大小爲0的返回值?bufio.Reader ReadRune - 大小0(返回值)可能嗎?

我很好奇,因爲我已經看到了下面的代碼在網上的一些例子:

//assuming input = *bufio.Reader 
r, size, err := input.ReadRune() 
if size == 0 && err == nil { 
    return 0, nil 
} else if err != nil { 
    return 0, err 
} 
return r, nil 

然而,根據去文檔:

如果編碼的符文是無效的,它消耗一個字節並返回大小爲1的unicode.ReplacementChar(U + FFFD)。

那麼在錯誤是ni的情況下會返回大小爲0的符文L·

回答

1

沒有任何情況,bufio.Reader ReadRune方法返回大小== 0和err == nil。

該方法在無法讀取有效符文的情況下讀取符文或單個字節。在這兩種情況下,返回的大小都大於零。