Почему Ruby возвращает nil?

Возник вопрос по возврату nil, пример:

# есть какая-то переменная:
my_variable = puts "Hi"
# при вызове метода p возвращается объект "nil"
p my variable

Я понимаю разницу между p и puts, осознаю, что метод должен вернуть какой-то результат, но не могу понять почему в данном случае будет nil.
  • Вопрос задан
  • 115 просмотров
Решения вопроса 1
2ord
@2ord
когда функция в Ruby ничего не возвращает, по умолчанию возвращается nil.

# есть какая-то переменная:
my_variable = puts "Hi"
Почему не так (нужно пробовать запускать построчно, а на сразу):
my_var = "hello"
puts my_var
p my_var

В интерпретаторе irb:
irb(main):001:0> my_var = "hello"
=> "hello"
irb(main):002:0> puts my_var
hello
=> nil
irb(main):003:0> p my_var
"hello"
=> "hello"

Возвращаемый функцией результат помечается как =>
Можно увидеть, что puts выводит на экран слово и затем возвращает nil. В твоем примере nil заносится в переменную my_variable. Так что все, как и следовало того ожидать.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@sudo_veritas
p my variable
Может p my_variable?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы