2014-12-28 2 views
0

Chris Pine 's 프로그램을 배우고을 배우기 때문에이 연습 문제를 해결할 수 없습니다. The는 사용자로부터 num을 얻은 다음 num + 1이 더 크고 더 좋은 숫자임을 사용자에게 알리기로되어 있습니다. 이 코드이 코드에서 어디에서 '.to_i'를 호출합니까?

: 1 puts 'What\'s your favorite number?' 2 num = gets.chomp 3 num = num.to_i + 1 4 puts num +' is a bigger and better favorite number.'

나는 4 호선이 오류가 발생합니다 : in '+': String can't be coerced into Fixnum (TypeError)

그래서 내 문자열 변수는 실제로 오른쪽 정수로 변환하기되지 않는 이유는 무엇입니까? 이 작업을 어떻게 수행합니까?

답변

1

마지막 줄에서 코드는 숫자를 문자열과 연결하려고합니다.

>> 1 + ' is ...' 
TypeError: String can't be coerced into Fixnum 
     from (irb):2:in `+' 
     from (irb):2 
     from C:/Ruby21-x64/bin/irb:11:in `<main>' 

연결하기 전에 숫자를 문자열로 변환하십시오. 그리고 문자열 보간을 사용하여가 '...'+ 사이에 공간이 될

puts num.to_s + ' is a bigger and better favorite number.' 
      ^

또는해야

puts "#{num} is a bigger and better favorite number." 
+0

감사합니다! 그게 효과가 있었어! – Ric

+0

@RicReyes, 스택 오버플로에 오신 것을 환영합니다! 이것이 도움이된다면, [답변 수락] (http://meta.stackoverflow.com/a/5235)을 통해 커뮤니티에 알릴 수 있습니다. – falsetru

+0

다시 한 번 감사드립니다! 스택 오버플로가 너무 도움이되었지만, 분명히 여전히 로프를 배우고 있습니다. :) – Ric

-1

사용이 마지막 행으로 -

puts "#{num} is a bigger and better favorite number." 
관련 문제