2017-02-05 4 views
-1

Использование Ruby Почему я не могу передать случайную переменную здесь? Я пробовал разные комбинации, такие как удаление номеров.Функция Ruby rand в методе

money= rand(100) 

def paycheck(money) 
    "Lets make this amount, #{money} today" 
end 

puts paycheck("100") 
puts paycheck("200") 
puts paycheck("500") 
+0

Где вы пытаетесь передать случайную переменную? – trueinViso

+0

Вы можете смутить смысл «денег» в разных контекстах. Внутри метода 'paycheck'' money' является новой переменной, приватной для этого метода, и не имеет ничего общего с переменной 'money', которую вы указали вне метода. Это называется shadowing https://en.wikipedia.org/wiki/Variable_shadowing –

ответ

1

Вы можете:

money= rand(100) 
puts paycheck(money) 

Когда вы определяете метод paycheck(money) - это другая переменная money, что одна на этой линии: money = rand(100)

1

Вы можете сделать что-то вроде этого:

def paycheck(limit) 
    money = rand(limit.to_i) 
    "Lets make this amount, #{money} today" 
end 

puts paycheck("100") #=> Lets make this amount, 14 today 
puts paycheck("200") #=> Lets make this amount, 111 today 
puts paycheck("500") #=> Lets make this amount, 119 today