Ich kam in diesem Beispiel, wo der Splat-Operator für sich allein in einer Methodendefinition verwendet wird:Was ist der eigenständige splat-Operator (*), der in Ruby verwendet wird?
def print_pair(a,b,*)
puts "#{a} and #{b}"
end
print_pair(1,2,3,:cake,7)
#=> 1 and 2
Es ist klar, was und warum Sie es in einem Kontext wie so verwenden würden:
def arguments_and_opts(*args, opts)
puts "arguments: #{args} options: #{opts}"
end
arguments_and_opts(1,2,3, a: 5)
#=> arguments: [1, 2, 3] options: {:a=>5}
Aber warum und wie würden Sie es im ersten Beispiel verwenden? Da es in den Ruby-Spezifikationen definiert ist, muss es einen Usecase dafür geben?
wo haben Sie einen solchen Code gefunden? –
@AndreyDeineko Es ist von diesem Artikel http://www.monkeyandcrow.com/blog/the_strange_ruby_splat/, aber ich habe auch solche Definitionen gefunden, während ich durch einige Rubygems Quellcode gegangen bin. – Severin
_ "Da es in den Ruby-Spezifikationen definiert ist" _ - wo? – Stefan