我想知道是否可以通过自动创建数组来插入数组,如果数组不存在的话,就像在 PHP 中一样:
$toto[] = 'titi';
如果尚未定义 $toto,它将创建数组并将“titi”压入。如果已经存在,它只会推送。
在 Ruby 中我必须这样做:
toto ||= []
toto.push('titi')
可以一行完成吗?
因为如果我有一个循环,它会测试“||=”,除了第一次:
Person.all.each do |person|
toto ||= [] #with 1 billion of person, this line is useless 999 999 999 times...
toto.push(person.name)
你有更好的解决方案吗?
谢谢。
最佳答案
toto = Person.all.reduce([]) do |arr, person|
arr << person.name
end
或者您可以简单地从数据库中提取名称
toto = Person.pluck(:name) # SELECT `people.name` FROM `people`
关于ruby - 在 ruby 中使用自动创建插入数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20570540/