LINUX.ORG.RU

История изменений

Исправление Aber, (текущая версия) :

а на нормальных языках …

Rly?

for i from 0 to 9

Я не могу никак запомнить to 9 это включая 9 или до 9? Или вот until? Until таки точно до 9 т.е. максимум будет 8, а значит to включает! - Вот это мой внутренний диалог когда я вижу такой код!

Оцените Kotlin:

for (i in 8 downTo 1 step 2) print(i)

Мне приходится напрягаться чтоб понять как работает этот код. Что такое step 2, это будет 8,5,2 или 8,6,4,2 т.е. к обычному downTo прибавляется 2? Или все операции по умолчанию step 1 но мы явно переопределяем значение step?

В то время как на c/c++/java все кристально чисто:

for (int i = 8; i >= 1; i-=2) print(i)

Ведь этот код проще! Ты запомнил как писать арифметические операции и операции сравнения и используешь их везде!

А тут какой-то обход цикла требует знания своего особого DSL, который используется ну разве только в алгоритмических зачах, а если ты годами пишешь CRUDы то все что у тебя остается в голове это обход коллекций без вывертов, и тогда любой сложный for требует обращение в google.

Исходная версия Aber, :

а на нормальных языках …

Rly?

for i from 0 to 9

Я не могу никак запомнить to 9 это включая 9 или до 9? Или вот until? Until таки точно до 9 т.е. максимум будет 8, а значит to включает! - Вот это мой внутренний диалог когда я вижу такой код!

Оцените Kotlin:

for (i in 8 downTo 1 step 2) print(i)

Мне приходится напрягаться чтоб понять как работает этот код. Что такое step 2, это 8,5,2 или 8,6,4,2 т.е. к обычному downTo и прибавляется 2, или все операции по умолчанию step 1 но мы явно переопределяем step?

В то время как на c/c++/java все кристально чисто:

for (int i = 8; i >= 1; i-=2) print(i)

Ведь этот код проще! Ты запомнил как писать арифметические операции и операции сравнения и используешь их везде!

А тут какой-то обход цикла требует знания своего особого DSL, который используется ну разве только в алгоритмических зачах, а если ты годами пишешь CRUDы то все что у тебя остается в голове это обход коллекций без вывертов, и тогда любой сложный for требует обращение в google.