2016-04-30 3 views
-1

Я пытался сделать Ruby, сон на сумму, что пользователь имеет вход, делая это:Как сделать Ruby sleep для ввода суммы пользователем?

puts "Time?" 
time = gets.chomp 
time.to_i 

sleep(time) 

Кто-нибудь знает, что я пытаюсь сделать, и то, что я делаю неправильно?

+1

Пожалуйста, убедитесь, что вы читаете это и попытаться улучшить свой вопрос: http://stackoverflow.com/help/mcve –

ответ

4

следующие работы для меня:

puts "Time?" 
time = gets.chomp 

sleep(time.to_i) 

.to_i не преобразовывают значение и переопределяет переменную, она просто возвращает преобразованный результат. Таким образом, она должна быть использована непосредственно в sleep аргумента или установить свой собственный (или другой переменной):

time = time.to_i 
sleep(time) 
4

Вызов time.to_i возвращает целое число, но не меняет time сам. Поэтому time по-прежнему является строкой.

Изменить это:

puts 'Time?' 
string = gets.chomp 
time = string.to_i 

sleep(time) 

Поскольку to_i не волнует, если есть "\n" в конце строки, вы можете пропустить chomp вызов. Таким образом, вы можете просто написать:

puts 'Time?' 
time = gets.to_i 
sleep(time) 
+0

я понял это. Это очень похоже на то, что вы добавляете 1 к переменной 'a = a + 1', за исключением того, что вы выполняете' time = time.to_i', который равен: 'время равно целому числу. Ваш ответ помог мне разобраться в этом. Спасибо. – Voidableryzer