我是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)}编译错误是“错误声明但未使用”。但我想我在 for 语句中使用了 err。为什么编译器会输出这个错误?
1 回答
尚方宝剑之说
TA贡献1788条经验 获得超4个赞
err
for的内部遮蔽了 for 的err
外部,并且没有被使用(for 内部的那个)。发生这种情况是因为您使用了短变量声明(带有:=
运算符),它声明了一个新err
变量,该变量遮蔽了在 for 之外声明的变量。
- 1 回答
- 0 关注
- 393 浏览
添加回答
举报
0/150
提交
取消