Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Ruby: Общие вопросы > Не понятен один момент


Автор: GrayCardinal 27.12.2008, 14:53
Код

 require 'socket'
     s1 = UDPSocket.new
     s1.bind("127.0.0.1", 0)
     s2 = UDPSocket.new
     s2.bind("127.0.0.1", 0)
     s2.connect(*s1.addr.values_at(3,1))
     s1.connect(*s2.addr.values_at(3,1))
     s1.send "aaa", 0
     IO.select([s2]) # emulate blocking recvfrom
     p s2.recvfrom_nonblock(10)  #=> ["aaa", ["AF_INET", 33302, "localhost.localdomain", "127.0.0.1"]]

Ход работы, в принципе понятен. Один вопрос. Что в строчках с коннектом делает "*" ?

Автор: kronos_vano 6.1.2009, 22:02
Код

def func(a,b,c)
    puts "a=#{a} b=#{b} c=#{c}"
end

func(1,2,3) # => a=1 b=2 c=3
func([1,2,3]) # => wrong number of arguments (1 for 3) (ArgumentError)
func(*[1,2,3])  # => a=1 b=2 c=3

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)