functions/splat_basic_parens.rb
tests/_examples/functions/splat_basic_parens.rb in the metorex repository.
# Variadic parameter collects remaining args
def log(level, *messages)
messages.each do |m|
puts level + ": " + m
end
end
log "INFO", "starting", "loading", "done"
# Splat with no extra args
def first_rest(first, *rest)
puts first
puts rest.length
end
first_rest "only"
# Splat expansion in call arguments
def add(a, b, c)
a + b + c
end
args = [1, 2, 3]
puts add(*args)
# Splat with some fixed and some expanded
def greet(greeting, name)
puts greeting + ", " + name
end
pair = ["Hi", "Alice"]
greet(*pair)
Output:
INFO: starting
INFO: loading
INFO: done
only
0
6
Hi, Alice