当前位置: 首页 > 知识库问答 >
问题:

为什么Go没有三元条件运算符[闭]

子车轶
2023-03-14
const pageNumber: number = query.pageNumber ? parseInt(query.pageNumber, 10): 1;

但是我发现我不能用围棋做同样的事情,我必须写一个if-else语句。我只是想知道为什么在围棋世界里不存在这种情况(是否有一些设计原则来解释这种情况)

共有1个答案

郗欣嘉
2023-03-14

Go常见问题:为什么Go没有?:运算符?

围棋中没有三元测试操作。您可以使用以下方法来获得相同的结果:

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

Go中没有?:的原因是,该语言的设计者看到了该操作在创建难以理解的复杂表达式时的使用频率过高。if-else表单虽然更长,但无疑更清晰。一种语言只需要一个条件控制流构造。

 类似资料:
  • 问题内容: 如果Python没有三元条件运算符,是否可以使用其他语言构造来模拟一个? 问题答案: 它是在2.5版中添加的。表达式语法为: 第一被评估,则恰好中的任一个a或b进行评估并返回基于所述布尔值。如果为,则被评估并返回但被忽略,否则被评估为返回但被忽略。 这允许发生短路,因为仅当评估为时才进行评估,而b根本不评估,而当为 评估时,仅当评估时就完全不评估。 例如: 注意条件是表达式,而不是语句

  • 如果Python没有三元条件运算符,是否可以使用其他语言构造来模拟一个?

  • 实际上,三元运算符的语言示例中是否有一个内置的不是以下形式的(条件运算符)? 我不是在找一种特定的语言,虽然至少有中等程度的流行度会更好。

  • 三元运算符 三元运算符 ? 应该只用在它能让代码更加清楚的地方。 一个条件语句的所有的变量应该是已经被求值了的。类似 if 语句,计算多个条件子句通常会让语句更加难以理解。或者可以把它们重构到实例变量里面。 推荐: result = a > b ? x : y; 不推荐: result = a > b ? x = c > d ? c : d : y; 当三元运算符的第二个参数(if 分支)返回和条

  • 在Kotlin中,这个表达式的等价物是什么? 这不是Kotlin中的有效代码。

  • 问题内容: 为什么在Python中没有and运算符? 问题答案: 不是因为它没有道理;而是因为它没有意义。最好将“ x ++”定义为“ x + = 1,求出x的先前绑定”。 如果您想知道最初的原因,则必须浏览旧的Python邮件列表,或者询问那里的某个人(例如Guido),但是在事实成立之后就很容易找到理由了: 与其他语言一样,不需要简单的增量和减量。您不会经常用Python编写东西。相反,你做类