就像其他人所说的那样,它被用作正则表达式的非捕获语法,但是,它也是正则表达式之外的有效ruby语法.
在ruby中?:
是冒号字符的整数值:
% irb irb> ?: => 58 irb ":"[0] => 58
添加括号不会更改值: (?:) == ?:
当你添加spaces(? :
)时,它是三元运算符,它本质上是ruby中if/then/else的简写,所以语句( bool ? truish : falsy )
相当于
if bool then truish else falsy end