LINUX.ORG.RU
ФорумTalks

match и case, вот и всё

 


1

2

Там, говорят, затвердили для 3.10 реализацию операторов match-case. Традиционно, «при Гвидо такого не было», хотя это ведь он предложил?

★★★★★

Последнее исправление: vvn_black (всего исправлений: 2)

Традиционно, «при Гвидо такого не было»

По-твоему, это единственный недостаток питонячьего match и case?! Не узнаю ЛОР :( При Луговском такого не было!

Manhunt ★★★★★
()
Последнее исправление: Manhunt (всего исправлений: 1)

Это что теперь, Python нормальным языком что ли будет?

При Гвидо такого не было.

EXL ★★★★★
()

Ну и хорошо. Пусть будет.

ilinsky ★★★★★
()

Питону очень не хватает очередного синтаксического сахара, никак не связанного с остальными конструкциями языка.

byko3y ★★★★
()

Ну справедливости ради, это не просто синтаксический сахар над if/elif/else. Этот синтаксис сильно упрощает некоторые конструкции и позволяет использовать возможности модуля typing для паттерн-матчинга. Что по идее довольно питонично, ибо duck-typing, все дела.

Мне даже интересно, как это будет работать с typing.Protocol. Наверняка протокол придётcя объявлять c @runtime_checkable со всеми сопутствующими ограничениями.

eternal_sorrow ★★★★★
()

Наконец станет не нужно городить портянки из elif или заниматься извращениями. Теперь осталось добавить enum и станет хорошо.

Tweaker ★★★★☆
()
Ответ на: комментарий от byko3y

switch ... case - это норма для языков, а не какой-то там «сахар».

И наконец-то аналог появится в Python'е. А то везде есть, включая Ruby, а в Python'е вместо нормального синтаксиса приходится городить батарею из if/elif.

saahriktu ★★★★★
()
Ответ на: комментарий от intelfx

Выше про это, кажется, уже писали, как и про то, что, по ходу, это более функциональная вещь.

Однако, в целом, оно как раз применимо там, где в других языках применяется switch ... case и почти с таким же синтаксисом.

saahriktu ★★★★★
()
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от saahriktu

И наконец-то аналог появится в Python'е. А то везде есть, включая Ruby

Ты так пишешь, будто руби — это не еще более ненужный кусок дерьма по сравнению с питоном. Если питон и дальше будет так «развиваться», то уже очень скоро код с паттерн матчингом, макросами, и аннотациями обобщенных типов по читаемости сравнится с C++, при этом по скорости продолжит быть эдак в 100 раз медленнее без малейших шансов получить универсальное решение проблемы со скоростью (не переписывая язык с нуля).

а в Python'е вместо нормального синтаксиса приходится городить батарею из if/elif

Какая разница, будешь ли ты городить батарею из elif или из case? Минимальная экономия букв не оправдывает добавление нескольких питоноподобных DSL (да-да, их больше одного) в состав интерпретатора.

byko3y ★★★★
()
Ответ на: комментарий от byko3y

Я сравнил интерпретируемые языки. И пока что на Python'е можно писать гораздо более читаемый код чем на C++.

saahriktu ★★★★★
()

Нинужно! Свитча по конструктору хватит всем!

Ну, если свитч и ссылки на конструкторы у вас там есть, я хз, я мимо проходил.

Princesska ★★★★
()

Гвидо правильно гнал в шею ревнителей свичкейза. Ещё лет пять назад они бы наверняка наворотили в питоне сишкоподобное убожество, а так там сразу появился нормальный паттерн-матчинг.

Esper
()
Последнее исправление: Esper (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.