Информация об изменениях

Сообщение Re[20]: Как объяснить падение популярности .net? от 12.12.2019 17:51

Изменено 12.12.2019 17:52 Mamut [ищите в других сетях]

Re[20]: Как объяснить падение популярности .net?
SD> ты уже несколько раз повторил эту мантру про nil и ни разу не удосужился проверить это на актуальной версии языка? хоть бы на том же самом repl.it

Поставил свежую Каталину. Поставил на нее свежий XCode (на момент установки Каталины). Получил то, что получил.

Ах, надо было обновиться на версию, которая, видать, толкьо вчера вышла? Ну извиняйте.

SD>guard не что-то прям особенное,


я нигде не говорю, что он что-то особенное. это утверждает зверюга. Я говорю прямым текстом, чем оно является: ненужной дополнительной кастрированной версией if'а.

SD>просто наверное ты его не использовал на практике вот он для тебя как-то дико выглядит. И поэтому ты сделал вон то "странное" предложение с убиранием "else". Синтаксис guard сделан так, чтобы программа читалась как текст, а не набор символов пунктуации.


guard сделан так, чтобы потом надо было тратить много страниц текста на объяснение, наига он нужен, и чем он отличается от if'а. Рационализация этого костыля слаба. И «программа должна читаться как текст» очень смешно выглядит в контексте практически любого языка в общем, и в С-синтаксисе Свифта в целом.

SD>По сути его можно было назвать ассертом: нужно [утверждение] иначе [аварийное действие]


Нельзя было.

SD>Читается как "должно быть книг.количество больше нуля, иначе результат – пустота"


Ну то есть читается, как if.

M>>А да. Ведь магический гард этого никогда не делает, ты что:

SD>guard и if схожи, у них главное отличие: if-let создаёт поле внутри блока if, а guard-let создаёт это поле до конца текущего скоупа. При этом let там не обязателен, можно простое условие, без создания поля.

Итак, на ровном месте создали, согласно зверюге «доп функционал и нагромождение синтаксиса», которое не нужно даже даром (при наличие внятного компилятора, понятное дело).

Потому что то, что ты написал ровно ничем не отличается от банального if'а. Чем guard и является.

M>>guard let httpResponse = response as? HTTPURLResponse,

M>> (200...299).contains(httpResponse.statusCode) else
M>>Самое прекрасное, конечно, это то, что guard на ровном месте меняет тип переменной.
SD>Что значит "на ровном месте меняет"? Автор кода явно задекларировал "допустим response это HTTPURLResponse", всё меняется как запланировано, точнее не меняется а создаётся новое поле с указанным типом.

Ты не в том месте разорвал цитату. зверюга утверждал, что другие языки говно, потому что надо вводить временные переменные. Хотя прекрасно видно, что guard легко вводит временные переменные.

SD>Хотя мне в свисте очень не хватает смарт кастинга котлина:

SD>if (response !is HttpResponse || response.statusCode !in 200..299)

Или сишарпа
Автор: Sinclair
Дата: 12.12.19
Re[20]: Как объяснить падение популярности .net?
SD> ты уже несколько раз повторил эту мантру про nil и ни разу не удосужился проверить это на актуальной версии языка? хоть бы на том же самом repl.it

Поставил свежую Каталину. Поставил на нее свежий XCode (на момент установки Каталины). Получил то, что получил.

Ах, надо было обновиться на версию, которая, видать, толкьо вчера вышла? Ну извиняйте.

И тем более, раз можно if x == nil, то смысл иметь в языке guard исчезает напрочь.

SD>guard не что-то прям особенное,


я нигде не говорю, что он что-то особенное. это утверждает зверюга. Я говорю прямым текстом, чем оно является: ненужной дополнительной кастрированной версией if'а.

SD>просто наверное ты его не использовал на практике вот он для тебя как-то дико выглядит. И поэтому ты сделал вон то "странное" предложение с убиранием "else". Синтаксис guard сделан так, чтобы программа читалась как текст, а не набор символов пунктуации.


guard сделан так, чтобы потом надо было тратить много страниц текста на объяснение, наига он нужен, и чем он отличается от if'а. Рационализация этого костыля слаба. И «программа должна читаться как текст» очень смешно выглядит в контексте практически любого языка в общем, и в С-синтаксисе Свифта в целом.

SD>По сути его можно было назвать ассертом: нужно [утверждение] иначе [аварийное действие]


Нельзя было.

SD>Читается как "должно быть книг.количество больше нуля, иначе результат – пустота"


Ну то есть читается, как if.

M>>А да. Ведь магический гард этого никогда не делает, ты что:

SD>guard и if схожи, у них главное отличие: if-let создаёт поле внутри блока if, а guard-let создаёт это поле до конца текущего скоупа. При этом let там не обязателен, можно простое условие, без создания поля.

Итак, на ровном месте создали, согласно зверюге «доп функционал и нагромождение синтаксиса», которое не нужно даже даром (при наличие внятного компилятора, понятное дело).

Потому что то, что ты написал ровно ничем не отличается от банального if'а. Чем guard и является.

M>>guard let httpResponse = response as? HTTPURLResponse,

M>> (200...299).contains(httpResponse.statusCode) else
M>>Самое прекрасное, конечно, это то, что guard на ровном месте меняет тип переменной.
SD>Что значит "на ровном месте меняет"? Автор кода явно задекларировал "допустим response это HTTPURLResponse", всё меняется как запланировано, точнее не меняется а создаётся новое поле с указанным типом.

Ты не в том месте разорвал цитату. зверюга утверждал, что другие языки говно, потому что надо вводить временные переменные. Хотя прекрасно видно, что guard легко вводит временные переменные.

SD>Хотя мне в свисте очень не хватает смарт кастинга котлина:

SD>if (response !is HttpResponse || response.statusCode !in 200..299)

Или сишарпа
Автор: Sinclair
Дата: 12.12.19