0

これを行うためのショートカット(構文糖)機能はルビーにありますか?

# x[5] += 3 that zeroes first if x[5] does not exists

x = {}
x.key? 5 ? x[5] = 3 : x[5] += 3 
4

3 に答える 3

5

サイズについてはこれを試してください:

x = Hash.new(0)
x[5] += 3
puts x[5] => 3

x[5] += 3
puts x[5] => 6

Hash.new(a_value)を使用すると、キーが存在しない場合にハッシュがその値を返します:http: //apidock.com/ruby/v1_9_3_392/Hash/new/class

于 2013-03-26T19:35:37.220 に答える
3

確かに、初期化されていない場合は初期化するための省略表記があります。

x = {}
x[5] ||= 0 # x[5] is 0
x[5] += 3  # x[5] is 3
x[5] ||= 0 # x[5] is 3
x[5] += 3  # x[5] is 6
于 2013-03-26T19:39:31.043 に答える
0

整数のみの場合は、次のように実行できます。

x[5] = x[5].to_i + 3

デフォルト値を設定できます。

x=Hash.new(0)

よりグローバルなソリューションであるこれを実行することをお勧めします

x[5] = (x[5] || 0) + 3
于 2013-03-26T19:45:19.490 に答える