Ruby 三元内部哈希构建
Ruby Ternary Inside Hash Build
寻找在哈希分配中包含三元条件的方法。
a = 5
h = {}
h[:alpha] => a > 3 ? true : false # edited twice
h[:alpha] => (a > 3 ? true : false) # edited twice
必须有一种方法可以缩短它。
您需要使用 =
(赋值运算符)而不是 =>
来分配值。
尝试:
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)"
几乎总是当初学者使用文字 true
或 false
时,这是不必要的。在这种情况下,你根本不需要三元。
a = 5
h = {}
h[:alpha] = a > 3
h[:alpha] # => true
寻找在哈希分配中包含三元条件的方法。
a = 5
h = {}
h[:alpha] => a > 3 ? true : false # edited twice
h[:alpha] => (a > 3 ? true : false) # edited twice
必须有一种方法可以缩短它。
您需要使用 =
(赋值运算符)而不是 =>
来分配值。
尝试:
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)"
几乎总是当初学者使用文字 true
或 false
时,这是不必要的。在这种情况下,你根本不需要三元。
a = 5
h = {}
h[:alpha] = a > 3
h[:alpha] # => true