169 похожих чатов

Здравствуйте. Решая задачи, столкнулся с такой ситуации, что в Скале

оператор return работает иначе, и в статьях указывается, что его лучше не использовать. Как Вы поступаете в таком случае, при решении задачи, когда Вам надо принудительно выйти из метода, тем самым уменьшая время работы?

12 ответов

13 просмотров

Не используем return вообще. Принудительно не выходим.

Можно закинуть пример кода с необходимостью принудительного выхода в скасти. Тогда кто-нть тут посмотрит и возможно предложит альтернативное решение.

Можно и нужно, если return упрощает код - используйте return. Не стоит его использовать внутри лямбд

Необходимость использовать return автоматически пропадает после определённой практики scala.

Daniel
ну ето бан

Вот пример из стандартной библиотеки Scala: def sizeCompare(otherSize: Int): Int = { if (otherSize < 0) 1 else { val known = knownSize if (known >= 0) Integer.compare(known, otherSize) else { var i = 0 val it = iterator while (it.hasNext) { if (i == otherSize) return 1 it.next() i += 1 } i - otherSize } } } Главное - без фанатизма.

Sergey Alaev
Вот пример из стандартной библиотеки Scala: def ...

вы сами гарантия себе, как говорится

Daniel
вы сами гарантия себе, как говорится

как говорится, нечего сказать - переходи на личности

Sergey Alaev
Вот пример из стандартной библиотеки Scala: def ...

Стдлиба — не гарант качества. Ретурнов стоит избегать хотя бы потому что сегодня код с ними такой, а завтра он уже ретурнит из лямбды

Nikita V
Стдлиба — не гарант качества. Ретурнов стоит избег...

Да, и новички злоупотребляют ретурнами, это тоже правда. Но, с другой стороны, ретурны позволяют уменьшить уровень вложенности в функции и просто быстрее для таких алгоритмов, когда нужно что-то найти и выйти.

Sergey Alaev
Да, и новички злоупотребляют ретурнами, это тоже п...

это единичные и узкоспециализированные случаи. Не стоит из-за них одних давать новичкам «общие» советы

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

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта