简而言之,从PHP 或JavaScript 等语言中知道的三元运算符在Go中是不存在的。但是你可以用if {..} else {..} 块来表达同样的条件,它比较长,但是比较容易理解。事实上,它不在语法中是语言设计者有意选择的结果,他们注意到三元运算符经常被用来创建过于复杂的表达式。
因此,Go中只有一个条件控制流结构:if {..} else {..} 。因此,与其写:
// this is not available in Go!
variable := <condition> ? <expressionIfTrue> : <expressionIfFalse>
你需要写:
var variable int
if <condition> {
variable = <expressionIfTrue>
} else {
variable = <expressionIfFalse>
}
例子:
x := 12
var points int
if x > 10 {
points = 100
} else {
points = 0
}
fmt.Println(points)
输出
100