Begin ... while ...?

— test1.rb —

def test_begin_while(*l)
b = begin a = l.shift end while !l.empty?
end

puts test_begin_while(1,2,3)

=> nil

— test2.rb —

def test_begin_while(*l)
b = begin a = l.shift end while !l.empty?
b
end

puts test_begin_while(1,2,3)

=> 3

###############

Help Me^^

###############

2008/8/21 Kyung won Cheon [email protected]:

###############

Help Me^^

###############

irb(main):005:0> def test_begin_while(*l)
irb(main):006:1> b = begin a = l.shift; p [a,b]; a end while !l.empty?
irb(main):007:1> end
=> nil
irb(main):008:0> test_begin_while 1,2,3
[1, nil]
[2, 1]
[3, 2]
=> nil
irb(main):009:0> def test_begin_while(*l)
irb(main):010:1> b = ( begin a = l.shift; p [a,b]; a end while
!l.empty? )
irb(main):011:1> end
=> nil
irb(main):012:0> test_begin_while 1,2,3
[1, nil]
[2, nil]
[3, nil]
=> nil
irb(main):013:0> def test_begin_while(*l)
irb(main):014:1> ( b = begin a = l.shift; p [a,b]; a end ) while
!l.empty?
irb(main):015:1> end
=> nil
irb(main):016:0> test_begin_while 1,2,3
[1, nil]
[2, 1]
[3, 2]
=> nil

Em Qui, 2008-08-21 Ã s 16:41 +0900, Kyung won Cheon escreveu:

###############

Help Me^^

###############

If I did well understand, you just want to catch the values passed in as
args to test_begin_while in an array. I’d do:

irb(main):020:0> def test_begin_while(*l)
irb(main):021:1> a = []
irb(main):022:1> b = begin a << l.shift end while !l.empty?
irb(main):023:1> a
irb(main):024:1> end
=> nil
irb(main):025:0> test_begin_while 1, 2, 3
=> [1, 2, 3]

Hope this helps.

Regards,


angico

home page: www.angico.org
Gnu/Linux, FLOSS, Espiritismo, e eu por mim mesmo 8^I

Kyung won Cheon wrote:

— test1.rb —

def test_begin_while(*l)
b = begin a = l.shift end while !l.empty?
end

puts test_begin_while(1,2,3)

###############

Help Me^^

###############

It works like this because your line works like

(b = begin a = l.shift end) while !l.empty?

and the ‘command while condition’ construct returns nil.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs