As a fellow newbie, let me just say that this splat business is all very
interesting, but I get cornfused one step earlier. You all seem to
think it is quite ordinary that this scanf method returns an array.
What’s up with that? If it gathers one line of input, why then, 'o why
doesn’t it return a string object???
thanks,
jp
Hal F. wrote:
Ken K. wrote:
is it possible if you explain that in a bit more detail? Is that like
pointers in C?
No… it’s what David Alan Black calls the “unary unarray” operator,
also called the “splat” operator.
on an array turns it into a simple list (sort of like removing
the brackets).
Actually… I think I misled you on the third example.
I don’t think it works. You’d still need more than one
item on the left side if you used it.
On the other side, it’s different.
x,* = array # means the same as
x, = array # but with the * it looks better
OH! Now I remember. Haven’t used it in forever. It uses a format
string just like printf. The returned array would be it’s best attempt
to pick out all of the pieces that the format string asked for. Makes
sense now.
thanks,
jp
Hal F. wrote:
Jeff P. wrote:
As a fellow newbie, let me just say that this splat business is all very
interesting, but I get cornfused one step earlier. You all seem to
think it is quite ordinary that this scanf method returns an array.
What’s up with that? If it gathers one line of input, why then, 'o why
doesn’t it return a string object???
scanf typically returns multiple objects – it reads a string and
returns strings, integers, floats, whatever.
The case where you’re only reading one item is the oddball
case. I guess it would be possible to just “return the item” –
but it’s more natural to return an array always.
As a fellow newbie, let me just say that this splat business is all very
interesting, but I get cornfused one step earlier. You all seem to
think it is quite ordinary that this scanf method returns an array.
What’s up with that? If it gathers one line of input, why then, 'o why
doesn’t it return a string object???
scanf typically returns multiple objects – it reads a string and
returns strings, integers, floats, whatever.
The case where you’re only reading one item is the oddball
case. I guess it would be possible to just “return the item” –
but it’s more natural to return an array always.
Hal
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.