- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
В данном случае наговнокодили создатели свифта.
В Си был оператор for
for (var i = subviews.count - 2; i >= 0; i -= 1)
Но в Swift 3 его выпилили и вместо него изобрели богомерзкий stride:
for i in (subviews.count - 2).stride(through: 0, by: -1)
through - до какого значения должен дойти цикл, включительно. Если вместо него написать to, то будет не включительно. Интуитивно понятно, не так ли? (сарказм).
Ну и до кучи, в случае со stride нужно больше печатать.
Я уже молчу, что ++ и -- посчитали небезопасными и выпилили. Наверно, потому, что некоторые дауны путаются с префиксной и постфиксной версией. теперь надо писать += 1 и -= 1. Очень наглядно, по сравнению с ++ и --
kurwa 20.10.2016 11:07 # +1
typedef var int?
kurwa-nextgen 20.10.2016 15:37 # −1
roman-kashitsyn 21.10.2016 14:02 # 0
dxd 21.10.2016 14:07 # 0
roman-kashitsyn 21.10.2016 14:19 # 0
kurwa 21.10.2016 14:25 # 0
gorsash 20.10.2016 16:00 # −2
kurwa-nextgen 20.10.2016 17:33 # 0
Речь и шла о наших сях.
besprincypniycentner 21.10.2016 13:49 # 0
ты ошибаешься.
автовывод типа в свифте и для var, и для let. var показывает то, что переменная будет изменена.
roman-kashitsyn 21.10.2016 13:53 # 0
И в чём же? В с++ auto никак не влияет на мутабельность объекта, только на вывод типа.
var ~= auto, let ~= const auto
besprincypniycentner 21.10.2016 15:03 # −1
в том, что var - это как auto.
ты ж сам говоришь, что auto - это про автовывод, а var - это про мутабельность.
roman-kashitsyn 21.10.2016 15:24 # −1
В общем, я понял, о чём речь. Суть в том, что var не заменяет имя типа, а просто сообщает компилятору, что дальше будет имя переменной, как в scala/go/etc. Тогда да, auto /= var. В плюсах просто нет ключевого слова для ввода имён, хотя иногда эту функцию выполняет auto:
besprincypniycentner 20.10.2016 11:46 # −1
это тоже выпилили
надо писать i = i + 1
1024-- 20.10.2016 19:21 # +3
>> теперь надо писать += 1 и -= 1
> это тоже выпилили
Мда. Хотел в комментариях написать, что += можно спутать с =+, а создатели языка уже подумали и запретили. В следующий раз запретят весь Swift, чтобы не осталось ни одной потенциально небезопасной конструкции.
barop 20.10.2016 21:07 # −70
Ну да, конечно, а без перегруженых операторов весь код на джаве просто шедевр чистоты и понимания
MilosTeodosic 20.10.2016 21:29 # −6
barop 20.10.2016 21:37 # −72
gumbert 27.10.2016 22:32 # 0
gorsash 20.10.2016 11:55 # 0
В 3 свифте stride выглядит чуть лучше - stride(from: subviews.count - 2, through: 0, by: -1) , но всё равно мне не особо нравится.
Лучше уж буду писать for i in (0 ... subviews.count - 2).reverse(), когда шаг 1
Hubactep 20.10.2016 12:09 # +3
For counter = start To end [Step step]
inkanus-gray 20.10.2016 15:06 # +3
inkanus-gray 20.10.2016 15:05 # 0
http://php.net/manual/ru/language.generators.overview.php
В Свифте stride создаёт компактный генератор или тупо массив, поглощающий память, как range в PHP?
gorsash 20.10.2016 15:13 # −1
gorsash 20.10.2016 17:10 # −1
guest 21.10.2016 14:50 # −17
guest 21.10.2016 14:51 # −17