массив возвращает логическое значение вместо значения, назначенного троичным оператором
и кода ...
arr = []
arr << true == false ? 'a' : 'b'
# Expecting, the output of arr to be ['b']. But instead, I was getting [true]
Почему это поведение?
и чтобы получить правильное значение, я должен сделать это.
arr << if true == false
'a'
else
'b'
end
# and also, = also works fine
arr = true == false ? 'a' : 'b' # arr has 'b'
и почему поведение отличается при использовании троичного оператора?