如何解决我可以在if块的开头使用多个具有多个返回值的函数来初始化多个变量吗?
我正在尝试使用两个函数来初始化if块内的变量。 这两个函数均返回布尔值和错误。 我尝试了以下方法,但没有成功。有办法做我想做的事吗?
func returnAValueAndError() (bool,error) {
return true,nil
}
func alsoReturnAValueAndError() (bool,error) {
return false,nil
}
if a,_ := returnAValueAndError(),b,_ := alsoReturnAValueAndError(); a || b {
// this gives me
// ./prog.go:16:42: syntax error: unexpected :=,expecting {
}
if a,_ := returnAValueAndError(); b,_ := alsoReturnAValueAndError(); a || b {
// this gives me
// ./prog.go:16:42: syntax error: cannot use b,_ := alsoReturnAValueAndError() as value
// ./prog.go:17:38: syntax error: unexpected newline,expecting comma or }
}
if a,_,alsoReturnAValueAndError(); a || b {
// this gives me
// ./prog.go:16:16: assignment mismatch: 4 variables but returnAValueAndError returns 2 values
// ./prog.go:16:39: multiple-value returnAValueAndError() in single-value context
// ./prog.go:16:67: multiple-value alsoReturnAValueAndError() in single-value context
}
解决方法
您不能那样做。该条件之前可以有一个简单的语句(不是多个语句):
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。