Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何使用三元运算符将值推送到数组?_Ruby - Fatal编程技术网

Ruby 如何使用三元运算符将值推送到数组?

Ruby 如何使用三元运算符将值推送到数组?,ruby,Ruby,数组返回的是布尔值,而不是三元运算符指定的值 而代码 arr = [] arr << true == false ? 'a' : 'b' # Expecting, the output of arr to be ['b']. But instead, I was getting [true] arr=[] arr这是由于。操作员谢谢大家的帮助,我喜欢iGian的解决方案,即没有括号 arr <<= true == false ? 'a' : 'b' arr或者a

数组返回的是布尔值,而不是三元运算符指定的值

而代码

arr = []
arr <<  true == false ? 'a' : 'b'
# Expecting, the output of arr to be ['b']. But instead, I was getting [true] 
arr=[]

arr这是由于。操作员
谢谢大家的帮助,我喜欢iGian的解决方案,即没有括号

arr <<= true == false ? 'a' : 'b'


arr或者
arr.push(true==false?'a':'b')
也许这是一个黑客攻击,但这也有效:
arr谢谢你,伊吉安,这是我在寻找的答案我们都知道
true==false
的结果。你可以简单地用
false
来代替它。如果你能解释它的工作原理,这个答案对未来的读者会更有用。实际上,
之间的区别是什么?如果你已经有了一个有效的解决方案,为什么首先要使用条件运算符?一般来说,您应该更喜欢条件表达式而不是条件运算符,因为正如您刚刚发现的,条件运算符具有一些非直观的优先级。您已经发布了一个使用条件表达式的解决方案,这个解决方案很有效:
arr-Hey-Jorg,我很好奇为什么条件表达式不起作用,并想向专家学习。
arr = []
arr << (true == false ? 'a' : 'b')
arr <<= true == false ? 'a' : 'b'