1

我最近问了一个关于用“条件”运算符替换“三元”运算符的有效性的元问题。关于我的元问题的意见之一陈述如下:是否有三元运算符不是某种形式的条件运算符

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

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

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

if arg1 then arg2 else arg3 

我不是在寻找一种特定的语言,虽然至少适度的知名度是首选。

回答

1

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

你的问题有趣的一点是:为什么这样呢?我相信有一个主要原因:

为什么有运营商呢?你不能总是使用一个函数吗?当然,但操作员可以使代码更易于阅读。但是一般来说,对于一元运算符和二元运算符来说只有这样,你可以在右边放置一个参数,也可以在运算符左边放置另一个参数。对于三元运算符,第三个参数没有明显的位置。有条件的赋值运算符也会遇到这个问题,但它非常有用,因此无论如何它都已经建立。