Size: a a a

Чат по руби

2020 July 30

PT

Pineapple Thief in Чат по руби
Еще от версии руби мб зависит и флагов компилятора
источник

P

Paul in Чат по руби
с методом все четко, иммутабельные не меняют свой id, мутабельные меняют. похоже, что руби отбивает память под метов, но для иммутабельных строк у него какая-то общая таблица и и он на нее ссылается
источник

P

Paul in Чат по руби
это уже куда-то совсем в недра мы залезли
источник

R

Roux in Чат по руби
Ура, завел decrypt))))
источник

R

Roux in Чат по руби
Paul
http://pastie.org/p/4trEaenshuQxCv4X1St2yT вот так получилось в итоге. блестящая идея не такая блестящая оказалась
Хотел как у Вас вместо проверки if, вот таким образом return указать, но тогда текст не возвращается в консоль
источник

R

Roux in Чат по руби
То есть n указываю 0 что бы проверить на работоспособность, но в консоль в таком случае текст не возвращается
источник

R

Roux in Чат по руби
Что-то упускаю?
источник

PT

Pineapple Thief in Чат по руби
упустили возможность сразу показать, как вызываете и что возвращается)
источник

R

Roux in Чат по руби
Pineapple Thief
упустили возможность сразу показать, как вызываете и что возвращается)
Если так, при n=0 текст естественно возвращается
источник

R

Roux in Чат по руби
А вот так - нет
источник

P

Paul in Чат по руби
не, в первом случае он как раз не возвращается
источник

PT

Pineapple Thief in Чат по руби
puts ничего не возвращает, puts выводит строку в stdout
источник

P

Paul in Чат по руби
а просто выводится в консоль
источник

PT

Pineapple Thief in Чат по руби
вернуть значение из метода и вывести значение на экран - две вообще ортогональные вещи, между собой несвязанные
источник

R

Roux in Чат по руби
Ну вот, значит причина в том, что я тупой) А каким образом тогда при return можно как-то увидеть что оно возвращается в данном случае?
источник

P

Paul in Чат по руби
вот наглядная разница в реализации метода, два варианта:
def hello(name)
 puts "hello #{name}"
end
hello("Bob")


def hello(name)
 "hello #{name}"
def
puts hello("Alice")
источник

P

Paul in Чат по руби
каждый пример выведет нужную строку, но второй правильнее — у него единственная обязанность (сформировать строку приветствия). а первый вариант ее формирует, а потом еще и выводит
источник

P

Paul in Чат по руби
в руби из метода всегда возвращается результат последней операции. в моем первом примере это puts, этот вызов возвращает nil. а второй пример возвращает объявленную строку
источник

R

Roux in Чат по руби
Спасибо, это понимаю. А в данном случае, я просто методы не совсем верно строю, запихивая туда очень много всего. Получается так?
источник

P

Paul in Чат по руби
Roux
Ну вот, значит причина в том, что я тупой) А каким образом тогда при return можно как-то увидеть что оно возвращается в данном случае?
конечно, надо вывести в консоль результат работы метода:
puts encrypt('ABCD', 2)
источник