正在寻找一种在散列赋值中包含三元条件的方法。
a = 5 h = {} h[:alpha] => a > 3 ? true : false # edited twice h[:alpha] => (a > 3 ? true : false) # edited twice
字符串一定有办法缩短时间。
taor4pac1#
当初学者使用文字true或false时,这几乎总是不必要的。在这种情况下,你根本不需要三进制。
true
false
a = 5 h = {} h[:alpha] = a > 3 h[:alpha] # => true
字符串
yqkkidmi2#
您需要使用=(赋值运算符)而不是=>来赋值。试试看:
=
=>
h[:alpha] = a > 3 ? true : false
字符串示例如下:
2.1.2-perf :001 > a = 5 => 5 2.1.2-perf :002 > h = {} => {} 2.1.2-perf :005 > h[:alpha] = (a > 3 ? true : false) => true 2.1.2-perf :006 > h[:alpha] => true
型编辑(根据您的评论):
2.1.2-perf :014 > user = [1,2,3,4,5] => [1, 2, 3, 4, 5] 2.1.2-perf :016 > user[1] == "solo" ? "#{user[2]} #{user[3]} (s)" : "#{user[4]} (g)" => "5 (g)"
型
8mmmxcuj3#
你可以使用splats:
{ a: 1, **(true ? { b: 2 } : {}) } # => { a: 1, b: 2 }
3条答案
按热度按时间taor4pac1#
当初学者使用文字
true
或false
时,这几乎总是不必要的。在这种情况下,你根本不需要三进制。字符串
yqkkidmi2#
您需要使用
=
(赋值运算符)而不是=>
来赋值。试试看:
字符串
示例如下:
型
编辑(根据您的评论):
型
8mmmxcuj3#
你可以使用splats:
字符串