language-agnostic - 是否有三元运算符不是某种形式的条件运算符

标签 language-agnostic ternary-operator conditional-operator

我最近问了一个关于用“条件”运算符替换术语“三元”运算符的有效性的元问题。对我的元问题的评论之一指出以下内容:

a ternary operator is any operator that takes 3 arguments. The conditional operator is a ternary operator but it's not the only one (although in particular programming languages it might be the only one).

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

实际上,是否有一个内置于语言的三元运算符示例,但不具有以下形式(条件运算符)?

if arg1 then arg2 else arg3

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

最佳答案

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

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

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

关于language-agnostic - 是否有三元运算符不是某种形式的条件运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37281698/

相关文章:

algorithm - 暴力破解平均密码/非侵入性但有意义的限制的尝试次数?

c - 意外结果,Gnu C 中的三元运算符

swift - 如何在 Swift 中正确进行 Nil 合并?

language-agnostic - 抑制警告是一个好习惯吗?

language-agnostic - 之字形解码

java - Java 中 if/else 的缩写形式

matlab - if then 的单行

c# - 在 C# 中使用条件运算符键入结果

c++ - 三元运算符,如果我避免写 ' expression 2 ' 它可以工作,但如果我不写 'expression 3 ' 它会给出错误

algorithm - 比较二维数据集/散点图