gpt4 book ai didi

go - 如果检查结构类型golang

转载 作者:行者123 更新时间:2023-12-01 22:38:02 25 4
gpt4 key购买 nike

如何在Golang中的if语句中使用临时结构类型?

struct card {
suit string
rank string
}
d := newDeck() //basically a list of cards

c := card{"Spades", "A"}

if d[0] != c { //works

}

if d[0] != card{"Spades", "A"} { //doesn't work
}

是否总是需要声明变量以比较结构类型,还是有办法像代码的最后一行那样使它更短?

最佳答案

section of the specification on composite literals说:

当使用LiteralType的TypeName形式的复合文字作为关键字和“if”,“for”或“switch”语句的块的开头括号之间的操作数出现时,解析歧义就会出现。不能用括号,方括号或花括号括起来。在这种罕见的情况下,字面量的开头括号被错误地解析为引入语句块的括号。要解决歧义,复合文字必须出现在括号内。

添加括号以解决歧义:

if d[0] != (card{"Spades", "A"}) { 
fmt.Println("hello")
}

Run in the playground

关于go - 如果检查结构类型golang,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59434011/

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