I am just learning Ruby and I can not seem to see why the first example
works but the second one does not - thanks
Why does this work:
puts ‘Hello what is you’re Favorite Number?’
number = gets.chomp
puts’’
puts’-----------------------------------------------------’
puts 'Your favorite number is ’ ‘’+ number + ‘?’
puts ‘’
puts ‘What a Lovely Number!’
puts ‘’
puts 'I think ’
puts (number.to_i + 1)
puts ‘may be a better favorite number though…’
puts ‘-----------------------------------------------------’
But this does not:
puts ‘Hello what is you’re Favorite Number?’
number = gets.chomp
puts’’
puts’-----------------------------------------------------’
puts 'Your favorite number is ’ ‘’+ number + ‘?’
puts ‘’
puts ‘What a Lovely Number!’
puts ‘’
puts ‘I think ’ + (number.to_i + 1) + ’ may be a better favorite number
though…’
puts ‘-----------------------------------------------------’
David Spitzer wrote:
I am just learning Ruby and I can not seem to see why the first example
works but the second one does not - thanks
Why does this work:
puts ‘Hello what is you’re Favorite Number?’
number = gets.chomp
puts’’
puts’-----------------------------------------------------’
puts 'Your favorite number is ’ ‘’+ number + ‘?’
puts ‘’
puts ‘What a Lovely Number!’
puts ‘’
puts 'I think ’
puts (number.to_i + 1)
puts ‘may be a better favorite number though…’
puts ‘-----------------------------------------------------’
But this does not:
puts ‘Hello what is you’re Favorite Number?’
number = gets.chomp
puts’’
puts’-----------------------------------------------------’
puts 'Your favorite number is ’ ‘’+ number + ‘?’
puts ‘’
puts ‘What a Lovely Number!’
puts ‘’
puts ‘I think ’ + (number.to_i + 1) + ’ may be a better favorite number
though…’
puts ‘-----------------------------------------------------’
i got it to work with this:
puts ‘Hello what is you’re Favorite Number?’
number = gets.chomp
puts’’
puts’-----------------------------------------------------’
puts 'Your favorite number is ’ ‘’+ number + ‘?’
puts ‘’
puts ‘What a Lovely Number!’
puts ‘’
newnumber = (number.to_i + 1.to_i)
puts ‘I think ’ + newnumber.to_s + ’ may be a better favorite number
though…’
puts ‘-----------------------------------------------------’
is there a way to get it to work with another variable (newnumber)
adding them first then converting it to a string in the text line?
David Spitzer wrote:
puts ‘Hello what is you’re Favorite Number?’
Well, there’s your /first/ syntax error.
puts ‘I think ’ + (number.to_i + 1) + ’ may be a better favorite number
though…’
Since “+” can mean either “concatenate strings” or “add numbers”, you
need a “to_s” there, just as you needed “to_i” before trying arithmetic.
John W. Kennedy
“Though a Rothschild you may be
In your own capacity,
As a Company you’ve come to utter sorrow–
But the Liquidators say,
‘Never mind–you needn’t pay,’
So you start another company to-morrow!”
– Sir William S. Gilbert. “Utopia Limited”
newnumber = (number.to_i + 1.to_i)
puts ‘I think ’ + newnumber.to_s + ’ may be a better favorite number
though…’
puts ‘-----------------------------------------------------’
is there a way to get it to work with another variable (newnumber)
adding them first then converting it to a string in the text line?
Also, try this:
puts <<EOT
Your favorite number is #{number}?
What a Lovely Number!
I think #{number.to_i + 1} may be a better favorite number though…
John W Kennedy wrote:
David Spitzer wrote:
puts ‘Hello what is you’re Favorite Number?’
Well, there’s your /first/ syntax error.
puts ‘I think ’ + (number.to_i + 1) + ’ may be a better favorite number
though…’
Since “+” can mean either “concatenate strings” or “add numbers”, you
need a “to_s” there, just as you needed “to_i” before trying arithmetic.
John W. Kennedy
“Though a Rothschild you may be
In your own capacity,
As a Company you’ve come to utter sorrow–
But the Liquidators say,
‘Never mind–you needn’t pay,’
So you start another company to-morrow!”
– Sir William S. Gilbert. “Utopia Limited”
Aha it worked!:
puts ‘I think ’ + (number.to_i + 1).to_s + ’ may be a better favorite
number though…’
thanks!
On 18.11.2008 23:56, David Spitzer wrote:
Aha it worked!:
puts ‘I think ’ + (number.to_i + 1).to_s + ’ may be a better favorite
number though…’
I’d rather do
puts “I think #{number.to_i + 1} may be a better favorite number
though…”
Or, if you are a fan of printf
printf “I think %d may be a better favorite number though…\n”,
number.to_i + 1
Kind regards
robert
Robert K. wrote:
On 18.11.2008 23:56, David Spitzer wrote:
puts “I think #{number.to_i + 1} may be a better favorite number
though…”
I think you can skip the .to_i when the number is inside #{}. In other
words, I think it would be valid and a little more readable to say:
puts “I think #{number + 1} may be a better favorite number though…”
From: Mike A. [mailto:“mike[nospam]”@mike-austin.com]
…
$stdout << “I think " << number + 1 << " may be a better favorite\n”
It’s much cleaner, although not as simple a concept as print.
well you can extend ruby to your liking,
def prints *list
list.each do |item|
end
end
=> nil
prints "I think “, number + 1, " may be a better favorite\n” I think 2 may be a better favorite
=> ["I think “, 2, " may be a better favorite\n”]
w the added adv that you get an array (of listing) too, ergo, the ff
works, too
prints (prints "I think “, number + 1, " may be a better favorite\n”)
I think 2 may be a better favorite
I think 2 may be a better favorite
=> [["I think “, 2, " may be a better favorite\n”]]
On Tue, Nov 18, 2008 at 8:48 PM, Peña, Botp [email protected] wrote:
end
end
=> nil
With the exception that this method returns an array, there is no
difference between it and print. Try:
print "foo ", "bar ", “baz”
On 20.11.2008 17:15, Michael Tomer wrote:
Robert K. wrote:
On 18.11.2008 23:56, David Spitzer wrote:
puts “I think #{number.to_i + 1} may be a better favorite number
though…”
I think you can skip the .to_i when the number is inside #{}.
No. Whether you can skip to_i solely depends on the type of “number”.
Btw, you can easily test that (see below).
In other
words, I think it would be valid and a little more readable to say:
puts “I think #{number + 1} may be a better favorite number though…”
irb(main):001:0> “1”+2
TypeError: can’t convert Fixnum into String
from (irb):1:in `+’
from (irb):1
irb(main):002:0>
This has nothing to do where the expression appears. IIRC number is a
String here so you must convert it to do integer math.
Cheers
robert