0

所以,我有x变量名,我想从一个方法中分配给x连续的非nil值……我该怎么做?

例如,我想映射到以 0 开头的函数%w[alpha beta gamma]的三个连续的非nil值。get(x)

因此,假设的值为get(x), get(0)=1, get(1)=54, get(2)=nilget(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 回答