【问题标题】:Are there ternary operators that aren't some form of a conditional operator是否存在不是某种形式的条件运算符的三元运算符
【发布时间】:2016-09-13 21:11:08
【问题描述】:

我最近询问了一个关于将术语“三元”运算符替换为“条件”运算符的有效性的元问题。我的元问题中的一个 cmet 陈述如下:

三元运算符是任何带有 3 个参数的运算符。条件运算符是一个三元运算符,但它不是唯一的(尽管在特定的编程语言中它可能是唯一的)。

这似乎表明术语三元运算符的严格阅读意味着一个带有三个参数的运算符。然而,根据我自己的经验,在浏览了三元运算符的维基百科页面后,我没有看到一个三元运算符不是一种或另一种形式的条件三元运算符的示例。

在实践中,是否有一个语言内置不属于以下形式的三元运算符(条件运算符)示例?

if arg1 then arg2 else arg3

我不是在寻找一种特定的语言,但至少有中等流行度的语言会是首选。

【问题讨论】:

    标签: language-agnostic ternary-operator conditional-operator


    【解决方案1】:

    我很确定在任何主流编程语言中都没有其他三元运算符。然而,在类 lisp 语言中,函数和运算符之间并没有真正的区别,因此任何具有三个参数的函数都类似于三元运算符。

    您问题的有趣之处在于:为什么会这样?我相信有一个主要原因:

    为什么会有运营商?你不能总是使用一个函数吗?当然可以,但是运算符可以使代码更易于阅读。但一般来说,这仅适用于一元和二元运算符,您将一个参数放在右侧,并且可选地将另一个参数放在运算符的左侧。对于三元运算符,第三个参数没有明显的位置。条件赋值运算符也存在这个问题,但它非常有用,无论如何它还是成立了。

    【讨论】:

      猜你喜欢
      • 2021-10-06
      • 2012-02-06
      • 2013-04-19
      • 1970-01-01
      • 1970-01-01
      • 2014-11-01
      • 1970-01-01
      • 2017-07-16
      • 2019-10-08
      相关资源
      最近更新 更多