0

だから、私はメソッドからの連続した非値xに割り当てたい変数名を持っています…どうすればそれを行うことができますか?xnil

たとえば、0で始まる関数%w[alpha beta gamma]の3つの連続する非nil値にマップしたいとします。get(x)

したがって、の値が、、、、でget(x)あるget(0)=1get(1)=54get(2)=nilますget(3)=6。、、、が欲しいalpha = 1です。beta = 54gamma = 6

これどうやってするの?

4

1 に答える 1

1

ハッシュのキーと値のペアを設定しても、実際には質問に答えられない場合がありますが、実際のプログラムではほとんどの場合正しい解決策です...

def get x # test sub
  [1, 54, nil, 6][x]
end

# find the next n non-nil values of an integer function
def find n, sofar, nextval
  return sofar if sofar.length >= n
  return find n, (sofar << get(nextval)).compact, nextval + 1
end

h = {}
h[:alpha], h[:beta], h[:gamma] = find 3, [], 0
p h
于 2012-07-25T02:17:42.300 に答える