Size: a a a

2020 July 02

EE

Ekaterina Egorova in RubyRush
а самый частый вот еще косяк по-началу
источник

EE

Ekaterina Egorova in RubyRush
def sum(a, b)
 res = a + b
 puts 'bla bla'
end

x = sum(5, 23)


что нибудь такое в конце написать и оно и будет возвращаться
источник

EE

Ekaterina Egorova in RubyRush
nil например выдавать - и весь код ломать - чего то не могу пример придумать но так оч часто бывает
источник

AN

Alexandr Nikolaev in RubyRush
Не помните, где Миша говорил про работе с Т. З. Спасибо, скиньте пожалуйста в лс.
источник

V

Vitaliy in RubyRush
Ilya
Переслано от Ilya
Хей гайз, объясните, пожалуйста, на пальцах, зачем return и что он делает. Да-да, прочитал что возвращает значение. Но что это значит? Зачем return в этом коде? И без него все работает. Объясните на человеческом языке плз, как вы это видите, как у вас этот код звучит в голове.
Если у Вас метод имеет результат вывода, то через puts Вы получите nil, так как puts печатает результат и возвращает nil, что в работе программы будет критично.

Катя по сути уже все выше Вам описала.

def sum(a, b)
 res = a + b
 puts 'bla bla'
end

x = sum(5, 23)
y  = 3
puts "#{x+y}"


x = sum(5, 23)
- вернет nil, собственно в переменную x будет записан результат nil, хотя Вы ожидаете 28, собственно Вы не сможете использовать x дальше в программе.

puts "#{x+y}" выдаст ошибку - NoMethodError (undefined method `+' for nil:NilClass), так как метод sum вернул результат puts 'bla bla' вывода - nil

Поэтому смотрите в контексте Ваших запросов.
return явно возвращает значение, если конечно оно Вам нужно. Методы в ruby возвращают результат выполнения последней строки

Опять же, return можно и не писать, а просто подставив в последнюю строку возврат нужного результата

def sum(a, b)
 res = a + b
 puts 'bla bla'

   res
end


Метод sum вернет результат выполнения a + b, напечатав при этом puts и не вернет nil
источник

В

Вячеслав in RubyRush
Ekaterina Egorova
def sum(a, b)
 res = a + b
 a += 1000
 return res
end

x = sum(5, 23)

puts x


вот например можно в метод выше еще вычисления добавить и тогда необходим return чтоб в итоге когда вызовите метод он всё поделает но вернет что то одно - то что вам надо
Вот это в руби и раздражает, если честно. Хорошо когда явно нужен return и тогда такие вопросы даже не возникнут. Сахар не сразу этого языка зашел
источник

V

Vitaliy in RubyRush
Вячеслав
Вот это в руби и раздражает, если честно. Хорошо когда явно нужен return и тогда такие вопросы даже не возникнут. Сахар не сразу этого языка зашел
Тут наверное как посмотреть. У меня ruby был первый язык и я не понимаю, почему другие языки не сделали такой сахар ))
источник

В

Вячеслав in RubyRush
Vitaliy
Тут наверное как посмотреть. У меня ruby был первый язык и я не понимаю, почему другие языки не сделали такой сахар ))
)) Дело привычки)  у меня первый язык в лохматых нулевых годах в универе был Делфи) Потом шарп и джава. К нетипизированным языкам долго привыкал. А от сахара руби вообще зависал долгое время)
источник

V

Vitaliy in RubyRush
Вячеслав
)) Дело привычки)  у меня первый язык в лохматых нулевых годах в универе был Делфи) Потом шарп и джава. К нетипизированным языкам долго привыкал. А от сахара руби вообще зависал долгое время)
Согласен, это просто дело привычки )
источник

I

Ilya in RubyRush
Короче, return выводит в конце метода то значение, на которое ему указали, а не по умолчанию - последнее.
def
test i = 500
j = 600
k = 700
return i, j, k
end
var = test
puts var

Результат:
500 600 700

Результат без return:
700

Правильно понял?
источник

M

Michael in RubyRush
оформите код как следует, ничего не понятно в вашем вопросе
источник

BO

Boris O in RubyRush
Ilya
Короче, return выводит в конце метода то значение, на которое ему указали, а не по умолчанию - последнее.
def
test i = 500
j = 600
k = 700
return i, j, k
end
var = test
puts var

Результат:
500 600 700

Результат без return:
700

Правильно понял?
Верно
источник

I

Ilya in RubyRush
Boris O
Верно
Спасибо)
источник

BO

Boris O in RubyRush
Но код и правда стоит оформить. Заключайте его в такие кавычки `
источник

BO

Boris O in RubyRush
Это позволит сохранить отступы
источник

BO

Boris O in RubyRush
3 в начале сообщения и 3 в конце
источник

EE

Ekaterina Egorova in RubyRush
Ilya
Короче, return выводит в конце метода то значение, на которое ему указали, а не по умолчанию - последнее.
def
test i = 500
j = 600
k = 700
return i, j, k
end
var = test
puts var

Результат:
500 600 700

Результат без return:
700

Правильно понял?
ага - я дооолго этот момент догоняла и об него спотыкалась, а вы молодец )

про оформление кода отнеситесь серьезно максимально - ребята вбили эти моменты на интенсиве ХП я уже 1000 раз за это спасибо сказала - на работе и везде пригодится первым делом.
источник

I

Ilya in RubyRush
Ekaterina Egorova
ага - я дооолго этот момент догоняла и об него спотыкалась, а вы молодец )

про оформление кода отнеситесь серьезно максимально - ребята вбили эти моменты на интенсиве ХП я уже 1000 раз за это спасибо сказала - на работе и везде пригодится первым делом.
С телефона копипаст не моя сильная сторона, сильвупле
источник

I

Ilya in RubyRush
Ekaterina Egorova
ага - я дооолго этот момент догоняла и об него спотыкалась, а вы молодец )

про оформление кода отнеситесь серьезно максимально - ребята вбили эти моменты на интенсиве ХП я уже 1000 раз за это спасибо сказала - на работе и везде пригодится первым делом.
Я пока транскрипцию на русский в голове не построю вообще не понимаю.
источник

BO

Boris O in RubyRush
Ilya
С телефона копипаст не моя сильная сторона, сильвупле
Тут такой момент, что чем лучше оформлен ваш код и вопрос - тем выше вероятность получить хороший ответ :)
источник