Loading AI tools
来自维基百科,自由的百科全书
编程语言中,埃尔维斯运算符是一种二元运算符,常写为?:
、or
、||
,如果第一操作数求值为真则返回其值,否则返回第二操作数的值。类似于带有“最后值”语义的短路求值。埃尔维斯运算符是受三元条件运算符 ? :
启发而被提出的。因为埃尔维斯运算符表达式A ?: B
近似于三元条件运算符A ? A : B
。
埃尔维斯运算符得名于它的通常表示法?:
,相似于埃尔维斯·普雷斯利(即“猫王”)的颜文字侧脸的额发,或者其他角度看相遇于他的得意的笑脸。[1]
?:
是个独特的运算符。[5]起自2007年12月的Groovy 1.5[6]。不同于GNU C和PHP,Groovy不是简单地允许三元运算符?:
第二操作数可忽略,而是?:
作为单独的二元运算符其间不能有空格符。?:
二元运算符,比较第一操作数是否为null
。null
则返回其值, 否则返回右操作数的值。[8] 常用于return
,如:val foo = bar() ?: return
?:
运算符?.
是一种埃尔维斯运算符,[9]。但C#的空值结合运算符??
才是相当于别的语言的?:
的埃尔维斯运算符。?:
isNonnull($a) ? $a : $b
。[11]??
[12],例如(a ?? b)
.COALESCE(a, b)
。L ?: R
[13]or
[14]宏,如(or a b)
。这是操作数个数可变的操作符而不是二元操作符,例如(or a b c d e)
将返回第一个非假的操作数的值。??
,例如(a ?? b)
[15]or
[17]逻辑运算符,如(a or b)
.在Common Lisp, Clojure, Lua, Object Pascal, Perl, Python, Ruby, JavaScript等编程语言中, OR运算符(典型为||
或or
)都是短路行为:如果左操作数的值为真,则表达式结果为真,不再对右操作数求值。这被称作短路求值。
C/C++语言标准强制||
和&&
是短路求值运算符。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.