gpt4 book ai didi

go - if/else 范围内的多个临时变量

转载 作者:IT王子 更新时间:2023-10-29 01:56:58 27 4
gpt4 key购买 nike

我刚刚注意到我们可以声明一个范围为 if/else 语句的阴影变量,如下所示

package main

import (
"fmt"
)

func main() {
num := 8


if num := 9; num < 0 {
fmt.Println(num, "is negative")
} else if num < 10 {
fmt.Println(num, "has 1 digit")
} else {
fmt.Println(num, "has multiple digits")
}

fmt.Println("num outside:",num)
}

现在我的问题是,我真的只能在 if/else 语句中声明一个临时变量吗?

我已经尝试了下面的两种方法,但都失败了

//if num := 9; c := 10; num < 0 {..... //syntax error: c := 10 used as value

//if num := 9, c:= 10; num < 0 {..... //syntax error: unexpected :=, expecting semicolon or newline

最佳答案

为什么,Go 有元组赋值。尝试:

if num,c:=9,10; num<0 {
//whatever
}

现在我们已经开始了,您应该注意到最优语句(; 之前的语句)可以不仅仅是赋值。写是合法的:

if fmt.Println("something"); num<10 {
}

关于go - if/else 范围内的多个临时变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51184832/

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