在Ruby on Rails中将新项插入实例变量

时间:2009-12-16 21:58:33

标签: ruby-on-rails ruby

@xs 存储网址,例如www.yahoo.com,www.google.com

for x in @xs
     y = x... #do something with x
     @result += y  #i want to do something like that. i want to store them in @result. What do i have to write in here?
end

抱歉没有问题。顺便问一下你怎么称呼@result?它是实例变量还是数组?

4 个答案:

答案 0 :(得分:3)

您需要先初始化@result

@result = []
for x in @xs
  y = x...
  @result << y
end

答案 1 :(得分:1)

你应该这样做:

@result << y

或者这个:

@result += [y]

+运算符需要两个数组,<<运算符将一个对象附加到数组上。

答案 2 :(得分:1)

从问题中我可以看出,你想改变现有数组的内容

@mutated_xs = @xs.collect do |x|
  y = x.do_something # some code for to do something to x returning y
  x += y # mutate existing x here
end
puts @mutated_xs.inspect

答案 3 :(得分:1)

如果你想获取数组中的每个元素并进行更改,那么惯用的Ruby方法是使用map或collect:

@new_urls = @urls.map do |url|
  # change url to its new value here
end

您无需手动将其分配给@new_urls,只需编写一个返回所需值的语句,如url.upcase或您想要做的任何事情。