Hi --
I'm almost an absolute novice in Ruby; it is my first language and I
just began learning the basics yesterday, using Chris Pine's 'Learning
to Program.'
Welcome to Ruby!
The trouble I'm having is simple, but nonetheless I would appreciate an
explanation. The little program I've written accomplishes a simple task:
it asks for your favorite number, adds one to it, then returns it to
you. Here it is:
puts 'Hey there, I\'m Uno.'
puts 'What\'s your favorite number?'
number = gets.chomp
better = number.to_i + 1
puts better + '...That\'s better.'
I'm receiving this error: String can't be coerced into Fixnum
(TypeError).' Why can't this variable--which contains a numeric
string--be converted into an integer?
The reason is that better is an integer, but "That's better." is a
string. So it's like you're trying to do:
5 + "hello"
and that doesn't work. You can convert back:
puts better.to_s + "...That's better"
or use Ruby's string interpolation syntax, which inserts expressions
into strings, via the #{} construct, and does the conversion for you:
puts "#{better}...That's better."
I've interpolated better, not better.to_s, and it will automatically
be to_s'd for me.
David
···
On Fri, 17 Jul 2009, Max Norman wrote:
--
David A. Black / Ruby Power and Light, LLC
Ruby/Rails consulting & training: http://www.rubypal.com
Now available: The Well-Grounded Rubyist (http://manning.com/black2\)
Training! Intro to Ruby, with Black & Kastner, September 14-17
(More info: http://rubyurl.com/vmzN\)