我是golang的新手,我写了一个测试io包的程序:
func main() {
readers := []io.Reader{
strings.NewReader("from string reader"),
bytes.NewBufferString("from bytes reader"),
}
reader := io.MultiReader(readers...)
data := make([]byte, 1024)
var err error
//var n int
for err != io.EOF {
n, err := reader.Read(data)
fmt.Printf("%s\n", data[:n])
}
os.Exit(0)
}
Run Code Online (Sandbox Code Playgroud)
编译错误是"错误声明并且未使用".但我想我已经使用了错误的声明.为什么编译器输出此错误?
aro*_*ero 20
errfor 的内部是for的err外部阴影,它没有被使用(for的内部).发生这种情况是因为您正在使用短变量声明(使用:=运算符),该声明声明了一个新err变量,该变量隐藏了在for外声明的变量.
| 归档时间: |
|
| 查看次数: |
5497 次 |
| 最近记录: |