andreas
1
I have a function that is defined as such:
def rubyfunc( &block )
…
end
Its called by “interface.rubyfunc” (Where obviously interface is a
class)
Can anyone give me an explanation of what the “&”-sign is and in general
what the parameter is when I call it from an empty function?
andreas
2
the syntax of ‘&’ comes from the c/c++ lang and means that the variable
‘block’ is not a parameter in the normal list.
‘block’ would take a ruby variable
while ‘&block’ takes a block of code
The function would be called like this
rubyfunc do |some_param|
puts param.to_s
end
where the do/end is becomes a Proc object and gets stored in the &block
arg
& must be used on the last argument in the function definition.
An instance of a Proc object can be executed via <var_name>.call()
note that the do/end can be substituted with {} but should only be used
on single line blocks ie.
rubyfunc{ puts ‘hello’ }
-K
p.s. this is a ruby syntax question and should be posted on the ruby
forum in the future.