Hi, im new to ruby. I ve qaquestions about closures
if i defiene this
def loopN n, &b
i=0
while (i<n) do
b.call
i+=1
end
end
Why the first and the second calls dosnt works and the third works?
1.1) loopN 5, {puts “hola”} # compile error , parse error unexpected
“{”, expected “$”
1.2) loopN 5 {puts “hola”} # compile error , unexpected tString.
1.2) loopN (5) {puts “hola”} # works
Hi,
Am Donnerstag, 15. Feb 2007, 20:52:08 +0900 schrieb Pedro Del G.:
Why the first and the second calls dosnt works and the third works?
1.1) loopN 5, {puts “hola”} # compile error , parse error unexpected
“{”, expected “$”
1.2) loopN 5 {puts “hola”} # compile error , unexpected tString.
1.2) loopN (5) {puts “hola”} # works
Precedence. “do … end” has low precedence, applies to the leftmost
function name, “{ …}” has high.
Why the first and the second calls dosnt works and the third works?
1.1) loopN 5, {puts “hola”} # compile error , parse error unexpected
“{”, expected “$”
Ruby doesn’t expect a comma between the last standard argument and
the optional block argument. Drop the comma.