1

我最近問了一個關於用「條件」運算符替換「三元」運算符的有效性的元問題。關於我的元問題的意見之一陳述如下:是否有三元運算符不是某種形式的條件運算符

三元運算符是任何接受3個參數的運算符。條件運算符是一個三元運算符,但它不是唯一的(儘管特定的編程語言可能是唯一的)。

這似乎表明嚴格閱讀術語三元運算符意味着一個接受三個參數的運算符。然而,按照我自己的經驗,在瀏覽三元運算符上的維基百科頁面之後,我沒有看到三元運算符的例子,它不是一種或另一種形式的條件三元運算符。

在實踐中是否有內置語言三元運算符的例子是不是以下形式(條件運算符)?

if arg1 then arg2 else arg3 

我不是在尋找一種特定的語言,雖然至少適度的知名度是首選。

回答

1

我確定在任何主流編程語言中都沒有其他的三元操作符。但是,在類似lisp的語言中,函數和運算符之間並沒有真正的區別,因此具有三個參數的任何函數都像三元運算符。

你的問題有趣的一點是:爲什麼這樣呢?我相信有一個主要原因:

爲什麼有運營商呢?你不能總是使用一個函數嗎?當然,但操作員可以使代碼更易於閱讀。但是一般來說,對於一元運算符和二元運算符來說只有這樣,你可以在右邊放置一個參數,也可以在運算符左邊放置另一個參數。對於三元運算符,第三個參數沒有明顯的位置。有條件的賦值運算符也會遇到這個問題,但它非常有用,因此無論如何它都已經建立。