7stud2
(7stud --)
1
Hello people, i am new at ruby and ror developing and i need your help
with this:
i got this code
class Trabajo
def saludar(nombre)
puts "Hola #{nombre}"
yield (("Fulano,32", "lol"))
end
end
class Trabajo2 < Trabajo
end
tr=Trabajo2.new
tr.saludar("David"){ |nombre2, edad| puts "algo raro #{nombre2}, tu edad
es: #{edad}" }
ok, it is easy but i always got the same error: syntax error, unexpected
',' , expecting ')' could some of you help me, i think the code it's
ok.
I would be glad for your help..
···
--
Posted via http://www.ruby-forum.com/.
7stud2
(7stud --)
2
use:
yield ["Fulano,32", "lol"]
yield wants only one object
···
--
Posted via http://www.ruby-forum.com/.
7stud2
(7stud --)
3
its the " " ...
yield("Fulano,32", "lol") # works
yield ("Fulano,32", "lol") # works not
···
--
Posted via http://www.ruby-forum.com/.
7stud2
(7stud --)
4
Hi,
David Acosta wrote in post #1060379:
Hello people, i am new at ruby and ror developing and i need your help
with this:
i got this code
class Trabajo
def saludar(nombre)
puts "Hola #{nombre}"
yield (("Fulano,32", "lol"))
end
[...]
ok, it is easy but i always got the same error: syntax error, unexpected
',' , expecting ')' could some of you help me, i think the code it's
ok.
I would be glad for your help..
The expression (("Fulano,32", "lol")) isn't valid Ruby. What did you
want to do?
If you wanted to put the block arguments in paranthesis, you need
*single* paranthesis directly after the "yield" (without any space):
yield("Fulano,32", "lol")
But you can actually leave out the paranthesis.
···
--
Posted via http://www.ruby-forum.com/\.
7stud2
(7stud --)
5
Hans Mackowiak wrote in post #1060382:
use:
yield ["Fulano,32", "lol"]
yield wants only one object
OMG, it was so easy, thank you very much
···
--
Posted via http://www.ruby-forum.com/\.
but why these codes work?
def a_method(a, b)
a + yield(a, b)
end
a_method(1, 2) { |a, b| (a + b) * 3 }
···
On Fri, May 11, 2012 at 2:37 PM, Hans Mackowiak <lists@ruby-forum.com>wrote:
use:
yield ["Fulano,32", "lol"]
yield wants only one object
--
Posted via http://www.ruby-forum.com/\.
--
Best Regards,
*Larry Lv
*
Sorry but this is plain wrong.
irb(main):001:0> def f; yield 1; yield 11,22; yield 111,222,333; end
=> nil
irb(main):002:0> f {|*a| p a}
[1]
[11, 22]
[111, 222, 333]
=> [111, 222, 333]
irb(main):003:0> f {|a| p a}
1
11
111
=> 111
irb(main):004:0> f {|a,b,c| printf "a=%p b=%p c=%p\n", a, b, c}
a=1 b=nil c=nil
a=11 b=22 c=nil
a=111 b=222 c=333
=> nil
yield is like a method call (apart from the block you cannot pass).
Kind regards
robert
···
On Fri, May 11, 2012 at 8:37 AM, Hans Mackowiak <lists@ruby-forum.com> wrote:
use:
yield ["Fulano,32", "lol"]
yield wants only one object
--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/