From: Bertram Scharpf Date: 2010-01-08T21:00:00+09:00 Subject: Re: when to use * arguments? Hi, Am Freitag, 08. Jan 2010, 18:43:41 +0900 schrieb Zhenning Guan: > version one: > def say(*a) > a.each {|r| puts r } > end > say(1,2,3) > > version two: > def say(a) > a.each {|r| puts r } > end > say([1,2,3]) > So, any different here? when should we * arguments like version one? Sometimes you have to use splats: when you call another method and you don't know what arguments that one takes. Object.new does this internally. It's something like class Object class <.