nil.to_? and ruby2.0

G

Gergely Kontra

Hi!

To the nil war:

Then what is the reason nil.to_i and friends exists?

Will it hide bugs?

I'm using 1.8, there nil.to_i exists,but
a=nil
b=2

b+a # nil cannot be coerced into Fixnum

So where to use nil.to_i?

ps: and how can I correctly reply to a message, if I don't get mails,
but read the mails from the archive?


Another question of mine: where can I read docs about ruby1.9/ruby2.0?
Shall I DL a snapshot and try it myself, or is there a good doc
somewhere?

thx
Gergo
 
A

Austin Ziegler

To the nil war:

Then what is the reason nil.to_i and friends exists?

Will it hide bugs?

I'm using 1.8, there nil.to_i exists, but
a = nil
b = 2
b+a # => nil cannot be coerced into Fixnum

So where to use nil.to_i?

b + a.to_i # I might have String, Fixnum, Float, or even nil here...

-austin
ps: and how can I correctly reply to a message, if I don't get
mails, but read the mails from the archive?

Either subscribe to the list, or go through the google groups
interface for comp.lang.ruby -- or maybe the gmane interface for the
same.

-austin
 
M

mark sparshatt

Gergely said:
Hi!

To the nil war:

Then what is the reason nil.to_i and friends exists?

Will it hide bugs?

I'm using 1.8, there nil.to_i exists,but
a=nil
b=2

b+a # nil cannot be coerced into Fixnum

So where to use nil.to_i?
you'd use nil.to_i in a case like this

a = some_method
2 + a.to_i

if you knew that some_method could return nil and that treating it as
zero was the right thing to do. I.E. if you've made a concious desicion
to treat nil as zero

However if we allowed this

a = some_method
2 + a #=>

then whether or not it's reasonable for some_method to return a nil, it
would still be silently handled whether you want it to or not.

So to_i and friends are there so a developer can use them to hide nils
if the program warrants it, but this hiding isn't the default behaviour,
so unexpected nils don't get hidden.

Which seems a reasonable compromise between flexibility and error detection.
 
C

Charles Mills

Gergely said:
Hi!

To the nil war:

Then what is the reason nil.to_i and friends exists?

Will it hide bugs?

I'm using 1.8, there nil.to_i exists,but
a=nil
b=2

b+a # nil cannot be coerced into Fixnum

So where to use nil.to_i?
Perhaps your thinking of to_int - which isn't defined for nil and why
the above raises an error.
ps: and how can I correctly reply to a message, if I don't get mails,
but read the mails from the archive?


Another question of mine: where can I read docs about ruby1.9/ruby2.0?
Shall I DL a snapshot and try it myself, or is there a good doc
somewhere?

Seems like there are some bits and pieces scattered accross the
internet, but nothing _complete_. Maybe start here:
http://www.rubygarden.org/ruby?Rite

-Charlie
thx
Gergo
--
+-[ Gergely Kontra <[email protected]> http://www.mcl.hu/~kgergely ]------+
| PhD Student (Room:IB113) PGP ID: 0x7E3846BF Mobile:(+36 20)356 9656 |
| Budapest University of Technology and Economics ICQ# 175564914 |
+------------- "Olyan langesz vagyok, hogy poroltoval kellene
jarnom!" -+
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,174
Messages
2,570,941
Members
47,476
Latest member
blackwatermelon

Latest Threads

Top