百科问答小站 logo
百科问答小站 font logo



三元运算符除了?:这种,还有哪些? 第1页

  

user avatar   he-shi-jun 网友的相关建议: 
      

【2018年答】

有三个operand的,都可以叫ternary operator。只不过在大多数编程语言里,? : 是唯一的三元运算符,所以很多时候讲三元运算就是指 ? : 了。

? : 的正式名称通常是 conditional operator(条件运算符)。

其他三元运算,维基百科给了一个例子:SQL 当中的 between。三元倒是三元,不过我们通常不把它视作运算符……

【2021年3月更新】

wikipedia又加了个OCaml的例子:a.[b]<-c,但这就好像说 a.b = c 是三元……它是可以理解为三元,但大多数情况下程序员(以及语言规范)将其理解(及解释)为 a.b 是一个左值,然后 = 是一个二元赋值算符。

另外一个例子是乘积累加,即 a += b * c,硬件层面可以是一个操作(以获得更准确的浮点运算结果)。然而程序员看来这是两个二元算符的组合,只是编译器在一些条件下可以自动转成一个三元指令。

再补充一个,我给JavaScript提了一个新提案 Extensions,有两种形式:二元形式A::B 和三元形式A::B:C。见这个 Slide 和提案仓库 tc39/proposal-extensions




  

相关话题

  如何看待一类计算机语言中的运算符“=赋值 ==等于 ===严格等于”的设计与a aa aaa这样的变量命名? 
  三元运算符除了?:这种,还有哪些? 
  三元运算符除了?:这种,还有哪些? 
  如何看待一类计算机语言中的运算符“=赋值 ==等于 ===严格等于”的设计与a aa aaa这样的变量命名? 
  三元运算符除了?:这种,还有哪些? 
  如何看待一类计算机语言中的运算符“=赋值 ==等于 ===严格等于”的设计与a aa aaa这样的变量命名? 
  如何看待一类计算机语言中的运算符“=赋值 ==等于 ===严格等于”的设计与a aa aaa这样的变量命名? 
  如何看待一类计算机语言中的运算符“=赋值 ==等于 ===严格等于”的设计与a aa aaa这样的变量命名? 
  如何看待一类计算机语言中的运算符“=赋值 ==等于 ===严格等于”的设计与a aa aaa这样的变量命名? 
  三元运算符除了?:这种,还有哪些? 

前一个讨论
如何看待知乎用户孟德尔在知乎上航天话题下的相关回答?
下一个讨论
职场报复?





© 2024-12-22 - tinynew.org. All Rights Reserved.
© 2024-12-22 - tinynew.org. 保留所有权利