Go 中文网、思否、博客园等平台,内容主要以问答形式记录。如果回答中有错误,欢迎大家指出,共同学习、共同进步。
Go每日一题_161
下面代码中,x 已声明,y 没有声明,判断每条语句的对错。 1)x, _ := f() 2)x, _ = f() 3)x, y := f() 4)x, y = f() 🔑 答案解析: 1)错 2)对 3)对 4)错 1. x, _ := f() 错误。 原因::= 是短变量声明操作符,要求左侧的所有变量都必须是未声明的。由于 x 已经声明,因此不能使用 :=。 修正:如果 x 已经声明,应该使用 = 赋值操作符: x, _ = f() 2. x, _ = f() 正确。 原因:= 是赋值操作符,可以用于已声明的变量。x 已经声明,_ 是空白标识符,用于忽略返回值,因此这条语句是合法的。 3. x, y := f() 正确。 原因::= 是短变量声明操作符,要求左侧至少有一个变量是未声明的。虽然 x 已经声明,但 y 是未声明的,因此这条语句是合法的。此时,x 会被重新赋值,y 会被声明并赋值。 4. x, y = f() 错误。 原因:= 是赋值操作符,要求左侧的所有变量都必须是已声明的。由于 y 未声明,因此这条语句会编译失败。 修正:如果 y 未声明,应该使用 :=: ...