1.1, Онаним (?), 21:14, 25/11/2021 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
Fibers - это вкусно и полезно. Особенно для сложных кооперативных тасков.
Производительность правда ожидаемо хуже линейных тасков на генераторах. Накладные расходы на переключение контекста выше в два раза по факту, что в общем и логично, контекст генератора собственного стека не имеет, в отличие от файбера.
| |
|
2.5, pavlinux (ok), 21:31, 25/11/2021 [^] [^^] [^^^] [ответить]
| +28 +/– |
> .. кооперативных тасков... линейных тасков на генераторах.... контекст генератора ... в отличие от файбера.
Шоб с тобой дети на Brainfuck общались!
| |
|
|
|
5.84, YetAnotherOnanym (ok), 12:19, 26/11/2021 [^] [^^] [^^^] [ответить]
| +4 +/– |
"Анатолий Борисович, ну зачем вот это вот «ваучер», ведь есть же хорошее русское слово - «приватизационный чек»" (ц)
| |
5.162, Онаним (?), 22:20, 28/11/2021 [^] [^^] [^^^] [ответить]
| +/– |
Ну я могу полностью на английский перейти, но половина ж не всё поймёт.
| |
|
|
|
2.13, kai3341 (ok), 21:51, 25/11/2021 [^] [^^] [^^^] [ответить]
| –4 +/– |
А можешь пояснить за файберы? Это асинхронность завозят?
PS: я не похапешник просто. Расскажу, с чем сталкивался
В python корутины -- это по факту генераторы. Прикольно, что простейшую корутину можно await-нуть вне event loop. Ржачно, что await и yield from -- это на уровне байткода одно и то же, и поэтому нельзя сделать yield from в асинхронном генераторе. Впрочем, устранимо -- нужно только на уровне байткода окончательно развязать корутины с генераторами
В JS асинхронность на промисах -- суть коллбэки. Питонячья асинхронность выглядит чуток костыльной на фоне промисов, но она работает и работает хорошо
| |
|
3.68, Онаним (?), 11:26, 26/11/2021 [^] [^^] [^^^] [ответить] | +1 +/– | Ну вот раньше да, кооперативные таски которые в отдельных местах обозвали corou... большой текст свёрнут, показать | |
|
2.22, Аноним (22), 22:18, 25/11/2021 [^] [^^] [^^^] [ответить]
| +/– |
попробуйте также swoole/openswoole - более полноценная штука чем просто одни файберы
| |
2.30, Аноним (30), 23:34, 25/11/2021 [^] [^^] [^^^] [ответить]
| –4 +/– |
Laravel вдохновлялась Рельсами, теперь вот еще Fiber завезли из Ruby'07. Бххх.
| |
|
1.3, pavlinux (ok), 21:19, 25/11/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +5 +/– |
> Добавлена поддержка перечислений,
>
enum Status {
case Pending;
case Active;
case Archived;
}
Это рейволюция, ребяты!
Ждём добавление указателей. Хачу на пэхе: *++d[&i++] = (volatile const * void __restrict *)&(s++[**++j]);
| |
|
2.20, Bx (ok), 22:11, 25/11/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Что ж тебя так корячит? Ну сделали энамы, тебе то что? Хлеб отобрали? Мяса недоложили? Не дают глупость писать?
| |
|
3.25, Аноноша (?), 23:00, 25/11/2021 [^] [^^] [^^^] [ответить]
| +5 +/– |
Меня одного мучает вопрос зачем там case внутри enum? Нельзя было просто без case через запятую сделать?
| |
|
4.78, Аноним (78), 11:58, 26/11/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
> case внутри enum?
Это ответ на вопрос, что курят пыхпыхи...
| |
|
|
2.132, Аноним (132), 23:32, 26/11/2021 [^] [^^] [^^^] [ответить]
| +/– |
Вы в java указатели сколько десятилетий ждете? Там тоже enum есть, почти 20 лет как.
| |
|
|
2.15, Смузихлёб (?), 21:55, 25/11/2021 [^] [^^] [^^^] [ответить]
| +8 +/– |
Коту делать нечего, так он бубенцы лижет!!! Так и в современном ОйТи обновления ради обновлений.
| |
|
3.95, Аноним (95), 14:30, 26/11/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Не ИТ это породило, а маркетинг. Нельзя теперь сидеть на строй версии айфона это не модно.
Вот и тут нужно обязательно взять новую версию и "купить" ...
| |
|
4.128, Смузихлёб (?), 19:50, 26/11/2021 [^] [^^] [^^^] [ответить]
| +/– |
> маркетинг
Самая жесть, это когда обновления плановые и привязаны к определенной дате.
| |
|
|
2.53, Аноним (53), 07:43, 26/11/2021 [^] [^^] [^^^] [ответить]
| –3 +/– |
Зарплата пхпшника - 50р/час
Зарплата джависта - 50$/час
Выбор очевиден
| |
|
3.79, Аноним (78), 11:59, 26/11/2021 [^] [^^] [^^^] [ответить]
| –4 +/– |
Потому что жабист выдаёт в час продукции на $100, а пыхпыхарь - на 100 руб.
| |
|
4.96, Аноним (95), 14:31, 26/11/2021 [^] [^^] [^^^] [ответить]
| –3 +/– |
Так изначально было ... PHP был язык для быстрого старта компаний
сейчас кто мог отуда выбрался, а осталбьные там продолжают страдать
Что мешает изучить джаву или пайтон или голанг и двинуть дальше?
| |
|
5.112, Gemorroj (ok), 17:44, 26/11/2021 [^] [^^] [^^^] [ответить]
| +6 +/– |
вы живете в мире иллюзий. и путаете "дальше" со "сбоку".
php - рабочая лошадка, и именно он двигает прогресс. а смузихлебы просто кочуют по волнам хайпа порожденного глупостью и маркетологами от ИТ.
| |
|
6.140, Аноноша (?), 03:13, 27/11/2021 [^] [^^] [^^^] [ответить]
| +/– |
> php - рабочая лошадка, и именно он двигает прогресс
Клепание сайтов на wordpress'е - двигать прогресс?
| |
6.145, Аноним (53), 07:46, 27/11/2021 [^] [^^] [^^^] [ответить]
| –4 +/– |
В чем прогресс то заключается? И когда юникод завезут в твоём "прогрессивном" языке?
| |
|
7.148, onanim (?), 10:18, 27/11/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
$ cat lol.php
<?php
if (extension_loaded('mbstring')) {
echo "я умею в юникод! 👍 \n";
} else {
echo "unikod ne zavezli :( \n";
exit(1);
}
$rust = "🤮";
if ($rust == "💩") {
echo "пых сила, раст могила";
} else {
echo "раст = $rust \n";
}
$ php lol.php
я умею в юникод! 👍
раст = 🤮
| |
|
|
|
|
|
2.121, Skynin (?), 19:24, 26/11/2021 [^] [^^] [^^^] [ответить]
| +/– |
Семантически php сложней java уже с 5.* версии
Просто можно и сейчас писать по старому, как на 3.*, Хотя, варнингов уже будет пачка
| |
|
|
|
3.81, Аноним (78), 12:01, 26/11/2021 [^] [^^] [^^^] [ответить]
| –4 +/– |
> для WordPress
Понятно тогда, почему во вротпрессе столько дыр.
| |
|
|
3.97, Аноним (95), 14:33, 26/11/2021 [^] [^^] [^^^] [ответить]
| –3 +/– |
Что ты говоришь у Пыха есть сообщество говнарей такое же как и JavaScript так что не надо тут ...
Сидят делают типовые сайты для магазинов зоотоваров и пусть радуються.
| |
|
4.111, Анонимный (?), 17:14, 26/11/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
NodeJS/JS ближе к пользователю и фронту, а на PHP нормальный клиентский опыт не реализовать.
| |
|
5.136, Аноним (136), 01:05, 27/11/2021 [^] [^^] [^^^] [ответить]
| +/– |
Избушка-избушка, повернись к лесу передом, а к пользователю задом. (Фронт на бэк, оверхед на фронт у SPA)
| |
|
|
|
|
1.14, Смузихлёб (?), 21:53, 25/11/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +6 +/– |
Что можно написать на пхп 8 чего нельзя было на пхп 4? К чему все эти обновления ради обновлений? Жизнь слишком коротка чтобы отслеживать всё это.
| |
|
2.18, Аноним (11), 22:04, 25/11/2021 [^] [^^] [^^^] [ответить]
| +2 +/– |
повышение призводительности в новых версиях имеет смысл всегда
а вот сахарок не особо нужен - все больше какойтой с++ франкенштейн получается
| |
|
3.44, Смузихлёб (?), 03:13, 26/11/2021 [^] [^^] [^^^] [ответить]
| –7 +/– |
> повышение призводительности в новых версиях
Да вот только на практике новые версии ВСЕГДА тормознее старых и требовательнее к железу. Запусти четвертую пыху на современном железе и офигеешь от производительности.
| |
|
4.64, anonymous (??), 11:11, 26/11/2021 [^] [^^] [^^^] [ответить]
| +/– |
Вы тут сильно ошибаетесь. То же добавление JIT ускорить работу PHP в разы. И вообще новые мажорные версии (начиная м 5ой) идут на ускорение, а не на замедление.
| |
|
5.109, Аноним (109), 16:50, 26/11/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
а нам тут врут - что не в разы а на 40% в ненужно синтетическом тесте и 5-15% в реальном применении по результатам свежезапиленного для arm64. Но мы конечно верим анониму-ускоряльцу.
| |
|
|
5.122, Смузихлёб (?), 19:26, 26/11/2021 [^] [^^] [^^^] [ответить]
| +/– |
> PHP 8.1 на много голов быстрее, чем PHP4.
Ты хоть в глаза видел 4 пыху, прежде чем писать подобный высер?
| |
|
6.134, funny.falcon (?), 00:30, 27/11/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
В старых php было жутко не эффективное представление array - т.е. всего. В PHP7 это поправили так, что он без JIT сравнялся с фейсбучным HipHopVM (которая была с JIT).
Так что не надо ля-ля про скорость четвёрки. Тормоз был ещё тот.
Просто во времена четвёрки ни кто не заморачивался с фреймворками. Не было подъёма и интерпретации сотен файлов.
Так а что вам мешает так же на восьмёрке писать? Напишите эквивалентный код и замерьте.
| |
|
7.155, Смузихлёб (?), 14:49, 27/11/2021 [^] [^^] [^^^] [ответить]
| +3 +/– |
> Тормоз был ещё тот.
Однако вэб летал на 2-3 пнях, а сейчас вкладки хрома даже на моём i9 тормозят. Конечно, это не беда пыхи, но общая тенденция на лицо.
| |
|
6.154, Cradle (?), 14:28, 27/11/2021 [^] [^^] [^^^] [ответить]
| +/– |
там одна из первых радикальных оптимизаций еще в 5.2 случилась, когда капитально переработали структуру внутреннего стека, дало махом прирост производительности раза в два как минимум. Давно это было, год 2010-2011 вроде, йа тогда как раз по работе в их core копался, очень веселые баги отлавливал и репортил. И мордокнига уже тогда со своим первым компилятором вылезла, тоже интересно было. Так что не надо на них балон крошить, кое-то там под капотом постоянно оптимируется. Синтаксис другее дело, постоянно их куда-то заносит, но этим у них другие ребята занимаются.
| |
|
|
|
|
2.100, Здрасьте (?), 16:17, 26/11/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Дофига всего. Взять те же namespace, как вспомню все эти длинющие названия классов в Zend Framework, так вздрогну.
| |
|
3.127, Смузихлёб (?), 19:48, 26/11/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
> namespace
Не нужно, как и всё ООП. Для сайтов в 99% случаев хватает процедурного программирования, а всё остальное усложнение ради усложнения.
| |
|
|
5.170, Онаним (?), 08:00, 29/11/2021 [^] [^^] [^^^] [ответить]
| +/– |
Не спорю, можно подтаскивать несколько разнородных проектов в один в виде библиотек.
Делалось-то конечно не для этого, а для возможности тянуть в рот продукты жизнедеятельности говнокомпозера, не задумываясь о содержимом, но всё равно удобно, да.
| |
|
|
|
|
1.19, Филимон Ностальгический (?), 22:04, 25/11/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
Когда-то Расмус Лердорф создал Personal Homepage Tools, чтобы дети и пенсионеры с рудиментарными знаниями в программировании могли создавать себе странички. За простоту использования они платили производительностью. Простота уже давно исчезла. За что платят производительностью пользователи PHP ?
Ну, и чтобы два раза не вставать: когда уже его перепишут на Rust ? Доколе мы будем страдать от багов ?
| |
|
|
3.72, YetAnotherOnanym (ok), 11:44, 26/11/2021 [^] [^^] [^^^] [ответить]
| –8 +/– |
Кгм... когда-то (ещё во времена 5-го пыха) пришлось покопаться в коде корп. сайта, доставшегося мне по наследству. Так вот, там на каждое обращение к мускулу устанавливалось соединение, скрипт авторизовывался, выполнял запрос, получал результат и отключался. И так много раз при генерации одной страницы. На каждый пук - полный цикл. Тут никакой "быстрый интерпретатор" не поможет.
| |
|
|
5.92, YetAnotherOnanym (ok), 13:46, 26/11/2021 [^] [^^] [^^^] [ответить]
| –5 +/– |
> На жабе тоже можно написать подобное - будет жаба виновата?
Емнип, жаба никогда не позиционировалась как язык, на котором сможет писать любой пионер и пенсионер. Она создавалась как язык для любых устройств, а не для любых неучей. А вот пых создавался именно как язык, на котором может писать кто угодно (это само по себе не есть что-то плохое), причём, что намного хуже, не включая мозг. И это уже проблема именно языка - не в узком смысле (проблема синтаксиса, который такое позволяет), а языка в целом - его экосистемы и его позиционирования его создателем.
| |
|
6.171, Онаним (?), 08:03, 29/11/2021 [^] [^^] [^^^] [ответить]
| +/– |
Пых на данный момент - очень удобная JIT-обёртка вокруг сишечки и библиотек на оной.
Я не удивлюсь, если он ещё лет через 10 начнёт с жабой тягаться за сегмент.
| |
|
|
4.94, onanim (?), 14:17, 26/11/2021 [^] [^^] [^^^] [ответить]
| +/– |
а как бы ты это сделал на C++? или другом любимом языке программирования.
| |
|
5.98, YetAnotherOnanym (ok), 15:06, 26/11/2021 [^] [^^] [^^^] [ответить]
| –4 +/– |
На плюсах - никак, ибо я не пишу на плюсах. На чём бы я сделал поддержание пула открытых соединений к БД в те времена - хз. Сейчас для своего любимого языка я просто возьму poolboy.
| |
|
|
5.116, YetAnotherOnanym (ok), 18:37, 26/11/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
Прочитай ещё раз пост, на который отвечаешь, комментатор херов.
Неиспользование "persistent connection" - это не ко мне претензия. Использовать "persistent connection в PHP" - этим как раз должен был заниматься тот пыхо-г..нокодер, чьё тормозное поделие оказалось в моём ведении, и с косяками которого мне пришлось тогда разбираться.
| |
|
6.125, onanim (?), 19:30, 26/11/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Прочитай ещё раз пост, на который отвечаешь, комментатор херов.
> Неиспользование "persistent connection" - это не ко мне претензия. Использовать "persistent
> connection в PHP" - этим как раз должен был заниматься тот
> пыхо-г..нокодер, чьё тормозное поделие оказалось в моём ведении, и с косяками
> которого мне пришлось тогда разбираться.
то есть в говнокодинге виноват язык программирования, а не говнокодер.
| |
|
|
4.110, Аноним (110), 16:55, 26/11/2021 [^] [^^] [^^^] [ответить] | +1 +/– | А ты не пробовал, прежде чем бежать все это ломать - выяснить, сколько времени з... большой текст свёрнут, показать | |
|
5.118, YetAnotherOnanym (ok), 19:14, 26/11/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
А где я написал, что что-то сломал? Я тогда обошёлся паллиативными экстенсивными мерами - добавил мощи и подкрутил настройки.
На будущее, когда этого может оказаться недостаточно, попытался поискать кому можно было бы заказать новый сайт, но все несколько веб-студий, которые тогда были в нашем городе, были способны сделать только такое же г..но, какое у нас уже было.
| |
|
|
3.115, Аноним (115), 18:11, 26/11/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Это в теории. А на практике поверх этого быстрого интерпретатора будет висеть Laravel, Yii или какой-то другой популярный фреймворк с кучей абстракций. А с учетом того что на PHP приложение собирается с нуля для каждого запроса и потом полностью уничтожается, то даже с включенным opcache всё это сливает в производительности, например, питоновской Джанге.
| |
|
4.165, Онаним (?), 22:29, 28/11/2021 [^] [^^] [^^^] [ответить]
| +/– |
Угу, вот только оно целиком не упадёт, когда какой-нибудь запрос сделает что-нибудь не так.
На жабе это костылят через ловлю блохоисключений, но это такой костылинг, что лучше бы падало.
Сама прелесть independent per-request handling в том, что оно действительно independent.
Увы, кости в мозге смену парадигмы осилить многим не позволяют, отсюда и вот это всё.
С другой стороны - на пыхе можно и жабоподобные всё-в-одном-комбайны ныне кропать, но оно нужно только там, где реально нужно.
| |
|
|
2.54, leap42 (ok), 07:46, 26/11/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Ну, и чтобы два раза не вставать: когда уже его перепишут на Rust ? Доколе мы будем страдать от багов ?
Кто именно перепишет? Растамэны, которые все вместе пока ничего кроме grep не переписали, или сами разрабы, которые, будучи способными писать подобные проекты на Си, к Rust скорее всего относятся без энтузиазма (это мягко говоря)?
| |
2.58, Аноним (58), 09:34, 26/11/2021 [^] [^^] [^^^] [ответить]
| +5 +/– |
С чего бы она исчезла? Ни встроенный шаблонизатор, ни встроенные глобальные функции никуда не делись. Если хочешь, можешь писать код в стиле 2005 года.
> За что платят производительностью пользователи PHP?
Какой производительностью? У PHP есть неплохой JIT и кеш байткода — это всякие Ruby, Javascript и прочие хипстоподелия страдают по сравнению с PHP.
| |
|
3.75, Онаним (?), 11:49, 26/11/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Из навесных шаблонизаторов очень хорош Blitz от Alexey Rybak, он идёт как модуль, и прост в доску, хотя конечно нюансов у него полно. Поскольку у PHP появился JIT, подумываю собственно переписать его Blitz на собственно PHP, сохраняя совместимость с шаблонами, по производительности теперь должно выйти не хуже. Всякие монструозные Smarty из 100500 классов на инициализацию тратят больше, чем на вывод шаблона.
| |
|
|
|
6.93, Sw00p aka Jerom (?), 13:58, 26/11/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Пацаны, а вас не смущает, что вы на шаблонизаторе пишете шаблонизатор ?
есть такое, но свои средства пхп далеки от понятия шаблонизатора. Но указанные как и мной, так и выше шаблонизаторы - написаны в виде модуля пхп (на С), не на самом языке пхп.
| |
|
7.126, Skynin (?), 19:32, 26/11/2021 [^] [^^] [^^^] [ответить]
| +/– |
тссс, не раскрывайте Великий Секрет вечным школьникам. пусть думают что
PHP, расшифровывающийся как "PHP: Hypertext Preprocessor", как то написано в первой строчке предисловия к докумнтации.
| |
|
|
|
6.108, Sw00p aka Jerom (?), 16:41, 26/11/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Его же Ще ковырял? Так ему некогда с айрисом-то =)
:) Ше, тах пхп модуль перестал работать после версии 5.3
| |
|
|
|
|
2.69, YetAnotherOnanym (ok), 11:34, 26/11/2021 [^] [^^] [^^^] [ответить]
| –3 +/– |
> За простоту использования они платили производительностью
И дырявостью. Сукербергу даже пришлось свой собственный пых написать, настолько плох был тогдашний пых.
| |
|
3.114, Gemorroj (ok), 17:50, 26/11/2021 [^] [^^] [^^^] [ответить]
| +/– |
мотивация там была - производительность. в связи с этим появился php 7 с переработанными структурами данных, за сет этого серьезно подняв производительность оригинала. hack, на данный момент, не нужен.
| |
|
4.152, Аноним (152), 11:04, 27/11/2021 [^] [^^] [^^^] [ответить]
| +/– |
И традиционно ограниченной совместимостью - "нам ЭТО ненужно - значит, не будет реализовано". Получилось нечто что только сцукенбергу и полезно - за что макаку второй раз премировали, потомучто молодец.
То же самое с их клоном hg. Бесполезное ненужно неработающее вне закрытой сеточки сцукенберга. И даже не собирающееся. Нате жрите.
| |
|
|
2.123, Skynin (?), 19:27, 26/11/2021 [^] [^^] [^^^] [ответить]
| +/– |
скорость разработки даже с самыми строгими правилами, со всеми фишками на php по прежнему выше чем на Java/C#
а тем более чем на С++/Rust
Поэтому - никогда на Rust не перепищется то что написано и пишется на php.
Программистов понадобится раз в 10 больше. А их, на php - дефицит
Где столько на Rust'е возьмутся?
| |
|
1.21, Аноним (22), 22:16, 25/11/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Кстати - кто есче не попробовал - очень рекомендую попробовать екстеншн к пхп - свул, ( swoole / openswoole ).
Очень классная штука - добавляет корутины, параллелизацию, евент луп и тд и тп.
тье в нод переписывать вообсче больше ничего не надо.
пилиться китайскими камрадами
| |
|
2.80, Онаним (?), 12:01, 26/11/2021 [^] [^^] [^^^] [ответить]
| +/– |
Ну я попробовал, не зашло, . В итоге нарисовал свой кооперативный тасклуп, универсальный для различных вариантов имплементации - генераторы, файберы, просто state-machine routines, который расширенный эвентлуп с кучей сахара, и не требует никаких расширений.
Конкретно не зашла event model, вот эти вот все ->on, который превращают любой мало-мальски сложный код в nesting hell.
| |
|
3.131, Онаним (?), 21:50, 26/11/2021 [^] [^^] [^^^] [ответить] | +/– | Более адекватной выглядит линейная модель задач, когда кооперативный таск выполн... большой текст свёрнут, показать | |
|
|
1.37, Михрютка (ok), 00:00, 26/11/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
>>>function foo(int $a, int $b) { /* … */ }
Микола, диви, який смутний смайлик!
| |
1.38, Аноним (38), 00:14, 26/11/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
Уродливый франкенштейн c $
enum Status {
case Pending;
case Active;
case Archived;
}
Зачем тут case?
| |
|
2.40, pavlinux (ok), 00:30, 26/11/2021 [^] [^^] [^^^] [ответить]
| +4 +/– |
В ихавом enum могут быть не только enum
enum Status
{
case DRAFT;
case PUBLISHED;
case ARCHIVED;
public function color(): string
{
return match($this)
{
Status::DRAFT => 'grey',
Status::PUBLISHED => 'green',
Status::ARCHIVED => 'red',
};
}
}
юзать так:
$status = Status::ARCHIVED;
$status->color(); // 'red'
https://stitcher.io/blog/php-enums
| |
|
3.46, Твайлайт Спаркл (?), 06:10, 26/11/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
#[allow(dead_code)]
enum Status {
Draft,
Published,
Archived,
}
impl Status {
#[must_use]
pub fn color(&self) -> &'static str {
match self {
Self::Draft => "grey",
Self::Published => "green",
Self::Archived => "red",
}
}
}
fn main() {
let status = Status::Archived;
println!("{}", status.color()); // 'red'
}
| |
|
4.66, anonymous (??), 11:17, 26/11/2021 [^] [^^] [^^^] [ответить]
| +2 +/– |
А зачем нужны "allow(dead_code)" и "must_use"? Выглядит как какая-то ненужная магия.
| |
|
5.83, Аноним (78), 12:04, 26/11/2021 [^] [^^] [^^^] [ответить]
| –3 +/– |
Дак растаманы! же писали! В здравом уме такое! не придумать!
| |
5.85, Твайлайт Спаркл (ok), 12:28, 26/11/2021 [^] [^^] [^^^] [ответить]
| +3 +/– |
> А зачем нужны "allow(dead_code)" и "must_use"? Выглядит как какая-то ненужная магия.
allow(dead_code) действительно не нужен, он заглушает предупреждения, что не все варианты enum'a используются.
А вот must_use довольно крут. Он добавляет предупреждение на такой код:
status.color();
То есть возвращаемое значение должно быть использовано (как минимум присвоено в переменную).
let _ = status.color();
| |
|
|
3.51, Ilya Indigo (ok), 07:19, 26/11/2021 [^] [^^] [^^^] [ответить]
| –4 +/– |
abstract class News
{
public const status =
[
'draft' => 'grey',
'published' => 'green',
'arcived' => 'red',
];
public static function test()
{
...
self::status['arcived']; // 'red'
...
}
}
News::status['arcived']; // 'red'
Зачем добавили эти enum-ы с таким синтаксисом вообще не понятно.
Даже от match была польза, а зачем нужны такие enum-ы не представляю.
| |
|
4.73, Онаним (?), 11:45, 26/11/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
Окей, а теперь расширь это на два признака. И получишь шляпку в два массива.
А теперь расширь на вычисляемое.
Кстати для просто одиночного типозначения метод с match не нужен, есть value(), который можно задать в case.
Так-то нынешний Enum - это по сути сахар вокруг специфичного класса.
| |
|
|
6.107, Здрасьте (?), 16:40, 26/11/2021 [^] [^^] [^^^] [ответить]
| +/– |
Функции нет, есть свойство. Если значения присвоены, их можно получить через ->value
| |
|
|
|
3.52, x3who (?), 07:25, 26/11/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Это не отменяет вопроса зачем там case. Ведь "DRAFT;" отличается от "public function x(...)" если уж так хочется добавить методы.
| |
|
|
|
6.150, x3who (?), 10:54, 27/11/2021 [^] [^^] [^^^] [ответить]
| +/– |
> До такого разве что растаманы могут додуматься.
Вполне законное желание для enum. Допустим у тебя в приложении есть публичные и приватные данные. Тут сам бог велел присобачить к ним (к данным) соотв флажок перечислимого типа. Раст тут ни при чем.
| |
|
5.151, x3who (?), 10:55, 27/11/2021 [^] [^^] [^^^] [ответить]
| +/– |
> Потому что я могу захотеть назвать значение enum «public».
Не "public function x(...)" же.
| |
|
|
|
|
|
2.74, Онаним (?), 11:46, 26/11/2021 [^] [^^] [^^^] [ответить]
| +/– |
Ну пых так-то изначально сильно плюсы-подобен, поэтому не удивительно.
Перегрузку операторов вот никак, но вроде RFC есть уже.
| |
2.143, Аноним (78), 06:58, 27/11/2021 [^] [^^] [^^^] [ответить]
| +/– |
> реально какой то с++ получился
Может, веб-программисты от этого поумнеют хоть немного?
| |
|
|
2.159, Gemorroj (ok), 10:59, 28/11/2021 [^] [^^] [^^^] [ответить]
| +/– |
и правильно делают. дебилы, которые $GLOBALS удаляют (да и вообще используют) должны страдать
| |
|
3.166, Онаним (?), 22:32, 28/11/2021 [^] [^^] [^^^] [ответить]
| +/– |
$GLOBALS надо было ещё в пятёрке выкинуть.
Вот просто взять, и выкинуть. Мучений и нытья было бы гораздо меньше.
| |
|
|
1.91, Аноним (91), 13:29, 26/11/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
php - personal home page
emacs - editor macros
Nickto ne zabyt. Nichto ne zabyto.
| |
|