gpt4 book ai didi

go - 在检查if-else条件时 undefined variable 名

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

从教程中学习时,我编写了以下程序。这是关于检查go中的条件。
但是,它将作为undefined message抛出错误。请帮忙。


// Check out various conditional operators

package main

import "fmt"

func condition(x int) string {
if x > 5 {
message := "x is greater than 5"
} else if x == 5 {
message := "x is equal to 5"
} else {
message := "x is less than 5"
}
return message // error on this line
}

func main() {
x := 10 - 5
msg := condition(x)
fmt.Println("%s", msg)
}

输出接收为:
user$ go run conditionals.go 
# command-line-arguments
./conditionals.go:15:9: undefined: message

最佳答案

message的作用域在每个if / else分支中。您希望它的作用范围是功能级别:

func condition(x int) string {
var message string
if x > 5 {
message = "x is greater than 5"
} else if x == 5 {
message = "x is equal to 5"
} else {
message = "x is less than 5"
}
return message
}

由于您要返回此值,因此您可以更新函数签名以包含返回的变量,例如
func condition(x int) (m string) {

if x > 5 {
m = "x is greater than 5"
}
// ...

return // implicitly returns m value
}

关于go - 在检查if-else条件时 undefined variable 名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61705899/

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