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