您可以使用 collect! 获得您想要的结果!或地图!就地修改数组:
https://stackoverflow.com/a/5646754/643500
x = %w(hello there world)
x.collect! { |element|
(element == "hello") ? "hi" : element
}
puts x
编辑:
因此,对于您的代码,它看起来像
@dis.collect! do |d|
temp = d.notes.inspect
#Now check the length of the temp variable
temp.length > 25 ? temp = temp[0,25] : temp = nil
d.notes = temp
end
编辑:
在这里工作的完整代码。确保你有带有 getter 和 setter 的 :notes。阅读 cattr_accessor、attr_accessor 和 attr_accessible
class TestClass
@note
def initialize note
@note = note
end
def get_note
@note
end
def set_note note
@note = note
end
end
@dis = Array.new
@dis << TestClass.new("yo yo")
@dis << TestClass.new("1 2 3 4 5 6 7 8 9 10 6 7 8 9 10 6")
@dis << TestClass.new("a b c")
@dis.collect! do |d|
temp = d.get_note.inspect
#Now check the length of the temp variable
d.get_note.inspect.length > 25 ? d.set_note(temp[0,25]) : d.set_note(nil)
end
puts "#{@dis}"