为什么 Go 语言没有三元运算符

这个问题在这里给出了解答:https://stackoverflow.com/questions/605617...

虽然Go中没有三元运算操作,但是可以使用以下方法实现同样的结果:

if expr {
    n = trueVal
} else {
    n = falseVal
}

Go语言中没有的原因是设计者发现该操作过于频繁地用于创建难以理解的复杂表达式。(这一点,Python体现的淋漓尽致)

虽然上面那种形式比较长,但是很明显是更加清晰的。

一种语言仅需要一个条件控制语句即可。

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 6

我还是觉得不能因为会存在过于复杂的表达式而放弃有存在价值的语法,我本人还是很喜欢xx?x:x的方式,只占用一行,对于最基本的if来说,很简洁,毕竟if else 占行有点多= =

4年前 评论
zhangdasuan 4年前
NearTheShore (作者) 3年前
wangchunbo

go追求极简主义啊。要什么自行车不是吗

4年前 评论
taadis
  • 能用一个 if/else 解决的事, 为什么非要用 ?:;
  • 能用一个 for 解决的事, 为什么非要用 while;
  • 源自 Go 哲学
3年前 评论

大道至简

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!