我试图找到最简洁的方法为数组中的第一项做一些特殊的事情,然后为所有其他事情做一些不同的事情.到目前为止,我有这样的事情:
puts @model.children.first.full_name
@model.children[1..@model.children.count].each do |child|
puts child.short_name
end
Run Code Online (Sandbox Code Playgroud)
我不喜欢如何指定范围内的计数.我想找一个更短的方法来指定"从第二项到最后一项".如何才能做到这一点?
Mar*_*lez 10
Ruby使用splat操作符有一种很酷的方法*.这是一个例子:
a = [1,2,3,4]
first, *rest = *a
puts first # 1
puts rest # [2,3,4]
puts a # [1,2,3,4]
Run Code Online (Sandbox Code Playgroud)
这是你的代码重写:
first, *rest = @model.children
puts first.full_name
rest.each do |child|
puts child.short_name
end
Run Code Online (Sandbox Code Playgroud)
我希望这有帮助!
你可以采取这种方法:
@model.children[1..-1].each do |child|
puts child.short_name
end
Run Code Online (Sandbox Code Playgroud)