gpt4 book ai didi

if-statement - 如果 block 使用具有多个返回值的多个函数,我可以在 Go/Golang 的开头初始化多个变量吗?

转载 作者:行者123 更新时间:2023-12-01 22:39:04 26 4
gpt4 key购买 nike

我正在尝试使用两个函数来初始化 if block 内的变量。
这两个函数都返回一个 bool 值和一个错误。
我尝试了以下方法,但没有成功。有没有办法做我想做的事?

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, _, b, _ := returnAValueAndError(), 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
}

最佳答案

你不能那样做。条件前面可以有一个简单的语句(不是多个语句):
https://golang.org/ref/spec#If_statements

关于if-statement - 如果 block 使用具有多个返回值的多个函数,我可以在 Go/Golang 的开头初始化多个变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63886676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com