- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
pub trait Normalize<T> {
type Output;
fn normalize(&self, baseline_value: &T) -> Self::Output;
fn denormalize(&self, baseline_value: &T) -> Self::Output;
}
impl<T, U, W> Normalize<T> for U
where
T: Copy,
U: Copy + Div<T, Output = W> + Mul<T, Output = W>,
{
type Output = W;
fn normalize(&self, baseline_value: &T) -> Self::Output { *self / *baseline_value }
fn denormalize(&self, baseline_value: &T) -> Self::Output { *self * *baseline_value }
}
impl<T> Normalize<CanvasSize<T>> for Rectangle
where
T: Copy,
f32: Normalize<T, Output = f32>
{
type Output = Rectangle;
fn normalize(&self, baseline_value: &CanvasSize<T>) -> Self::Output {
Rectangle {
x1: self.x1.normalize(&baseline_value.width),
y1: self.y1.normalize(&baseline_value.height),
x2: self.x2.normalize(&baseline_value.width),
y2: self.y2.normalize(&baseline_value.height),
}
}
fn denormalize(&self, baseline_value: &CanvasSize<T>) -> Self::Output {
Rectangle {
x1: self.x1.denormalize(&baseline_value.width),
y1: self.y1.denormalize(&baseline_value.height),
x2: self.x2.denormalize(&baseline_value.width),
y2: self.y2.denormalize(&baseline_value.height),
}
}
}
Вчера споросил его про ассоциации, он мне придумал совершенную дичь и сослался на несуществующую документацию
Пора уже учиться ухаживать за деревьями и водить погрузчики, или пока не?
Вообще надо спросить (((альтманскую))) версию, может хорошо ответит, по моему опыту часто бывают по делу ответы и справляется с большими кучами текстов, что как раз у майков так и есть с файлоассоциациями
>>>
About that, programs written in go are "simple" in the way 10 pages of GPS navigation instructions are simple: the business logic is hidden somewhere within a deluge of if and for loops.
>>>
А почему это не часть дженерика?
Например, для (условного) трейта Iterator<TCollection> тип Output должен являться типом значений, хранящихся в TCollection. Нет смысла делать Iterator<TCollection, Output>: этим мы бы показали, что у нас для каждой коллекции может быть неограниченное количество разных итераторов, различающихся только выходным значением.
См.: https://doc.rust-lang.org/book/ch20-02-advanced-traits.html#associated-types для менее запутанного объяснения.
видишь проблему?
Я могу два раза его реализовать.
А если так
Чтобы можно было писать «Desktop YOU SHUT THE FUCK UP JAVASCRIPTS SAVED MILLIONS OF JEWS!»
В то время, когда Нетаньяху проводит геноцид, они используют иврит!
Я начинаю компанию по полному бойкоту PHP. Присоединяйтесь!
Быть ПХП программистом должно быть стыдно!!
так вот, T_PAAMAYIM_NEKUDOTAYIM это "::" оказывается, а не двоеточие
>The T_PAAMAYIM_NEKUDOTAYIM token first appeared in version 0.5 of the Zend Engine, which powered PHP 3, and which was developed in Israel.
>This continues to remind us of the major contribution the Israeli community has brought to PHP by laying its modern foundation.
https://wiki.php.net/rfc/rename-double-colon-token
А Палестина нет.
Вы еще спрашиваете, почему я за Палестину?
· Бесплатно: Поскольку деньги запрещены, за вход платить не нужно. Все мероприятия бесплатны.
Балабоба ещё утверждает, что подадут полдник, а потом пригласят обедать
Пускают ли туда иноверцев и атеистов, не проверял.
Так что «PHP» своей популярностью обязан (((Гутмансу))) и (((Сураски))).
Знаешь, как в анекдоте? Ему мало, что он Рабинович?
::
Двойное двоеточие можно заменить на точку (как сделано в куче ЯП) но точка короче
"->" тоже можно заменить на точку (как сделано в куче ЯП) то точка корочке
"new" не нужен, его можно убрать (как сделано в куче ЯП) но без new короче
"$" не нужен,. но вы поняли, да?
-> имеет смысл в крестах, ибо там есть разыменование указателей, «new» тоже имеет смысл во «взрослых» ЯП, где есть несколько способов инстанцирования.
Доллар имеет смысл в шелле, ибо там это макроподстановка. Ну и в Перле, потому что в Перле нужно указывать тип контекста. В «PHP» же на ровном месте создали раздельные неймспейсы для переменных и функций, зато можно написать function f($f), и никакого затенения не будет.
Since we are in 2020s, this question should not be asked by a web developer. If you have employed such a guy, trust me, he/she should be fired.
We are using many lovely features in our project, some from ESNext, and some are popular in development but not supported natively by any browser. So we compile those parts to legacy JavaScript code to make the extension work for more browsers.
For example, we build UI in Violentmonkey with Vue.js, a popular framework good at building complexed UIs. It depends on quite a few custom annotations which need to be transformed to vanilla JavaScript and CSS so that the browser can understand.
There are also some constants injected at compilation time so that we don’t need to hard-code them.
>>>
This had been the cause of some minor confusion and could also be used to construct ambiguous examples. To alleviate this, :: was introduced to mean membership of class and . was retained exclusively for membership of object
>>>.
Уже во времена питона и джавы стало понятно, что это не нужное разделение (кроме редкого кейса -- указателя на мембер). Да и в плюсах ябы оставил :: только для неймспейсов (кроме редкого кейса -- указателя на мембер)
"->" называется "разыменуй указатель на структуру" чтоб не писать каждый раз (*petuz).
Поскольку в ПХПне ты всегда работаешь по ссылке, смысла в этой хуйне никакого нет.
Это даже джависты поняли. Причем в C++ для референса стрелочка не нужна уже, то-есть даже в С++ у тебя больше сахара, чем в пыхе. В рустне стрелочки нет, но есть спец трейт, который разыменовывает ссылку прозрачно. Стрелочка имеет хоть какой-то смысл разве что в перле, но и там она опциональна после первого разымновывания.
"new" нужен был только в C++, где ты явно создавал объект в куче (в аллокаторе наверное точнее говоря). Тупые макаки растащили его по всем языкам, включая блядь JavaScript. Хорошо в питоне с котлином этого нет.
Иронично, но со времен С++11 управлять памятью вручную стало почти никогда не надо, и почти всегда вместо "new" ты видишь умный указатель (кроме специального лоу-левел кода, который пишут тсори).
Еще более иронично, что в C# "new" создает объект НА СТЕКЕ БЛЯДЬ если это value type.
Оттуда он перекочевал в awk (там кстати есть и встроенные переменные без доллара, NC например) и там он уже был нужен только для интерполяции. "$1" -- первое место итд.
Оттуда он перекочевал в Перл, где был нужен для интерполяции и для указания контекста (@a это вам не $a). В остальной скриптушне он наъуй не нуэен: даже в руби, где интерполяция была раньше всех, обошлись без долара (переменну надо обернуть скобочками). В пыхе он просто наъуй не нуэен.
почмеу не плюс? Понятно почему в перле не плюс, а в пхп-то что?
а в пхп же есть тип, не?
В PHP нет типов переменных, но есть типы значений. В новых версиях у аргументов функций есть хинты типов — такой ассерт, чтобы в рантайме выкинуть исключение, если передали значение другого типа.
Итак, есть два стула:
1. Питон с одним оператором и строгой типизацией.
2. PHP с двумя операторами и слабой типизацией.
JS взял худшее из обоих миров.
а в перле частично из за шелла, а частично ради того, чтобы легко собирать структуры из файлов, ведь perl это язык для текста.
вот тут я считал переменную из stdin, и мне не нужно кастить ее в int явно.
Отсутствие статической типизации, равно как и слабая типизация хороша когда ты пишешь скрипт (размером в одну страницу), а в реальности даже скриптовики хотят статической и строгой типизпции, именно потому проекты на пайтоне обманазы mypy и pyright (кстати, кто лучше?) а на JS пишут только с TS
На самом деле, TS не так плох. Вот как называется такой вывод типов для юнионов
это скомпилируется, а где еще так можно написать (крмое функциональных яп)?
https://www.php.net/manual/ru/language.types.type-system.php#language.types.type-system.composite.union
В Ideone PHP7, там не работает. Запустил на PHP8...
doAll('Питух'); не упало. PHP сконвертировал строку в бул!
Слабая типизация — говно. Именно поэтому я за «Питон».
а подмножество енума умеет выводить?
ну ща приведу пример, погоди
А в первом твоём примере вообще обоссака: какие-то там пафосные юнионы, а внутри тайпоф и сверка со строкой лол
тайпоф это способ проверки значения, он в данном случае ничем не хуже проверки енума.
Возможно, ты просто не знаешь ТС, а может он тоже говно
но от метки default избавиться не удалось
впрочем, тебе в функции на самом верхнем уровне от него тоже не уйти
никаких дефолтов нет
https://govnokod.xyz/_29178/#comment-1330974
сэкономил дюжину символов
партия выдать тебе скрипто-кошко-жена
Если поменять enum, то у меня не скомпилируется. В твоем же случае ты узнаешь о проблеме только в рантайме, когда тебе напечатает пустоту
Ты понимаешь, почему проверка в компайл-тайме лучше проверки в рантайме?
По сравнению с тайпофом вообще норм
Проблема 100% compile time check решается через один enum и переменную или метод isBusinessError, который может быть в каком тебе угодно месте и который тоже не скомпилируется без обработки всех кейсов
Мой пример это демонстрация того, что ты в принципе можешь получить на Свифте. И да, можно ещё обработать напильником и в теории получить тот же 100% compile time check
Зато ты дошёл от кода с тайпофом, который прямо напоминает индусскую проверку на bool, до чего-то похожего на
Ты стал немножко лучше сегодня
>Демонстрация того, что ты в принципе можешь получить на Свифте.
Да, безусловно в свифте иначе нельзя.
Как и в Java, Rust, C#, Kotlin, YouNameIt.
>Зато ты дошёл от кода с тайпофом
Поскольку ты совсем не знаешь ни JavaScript, ни TypeScript, то поясню:
Проверка на typeof это совершенно валдиная конструкция в JS, ничем не отличающаяся от проверки на енум.
В TC она полностью статически проверяема, и выводит тип:
В Котлине для этого нужно использовать Sealed Classes. В Расте -- enum. В TS это можно сделать не указывая тип явно.
> В TC она полностью статически проверяема
Как скажешь
но скриптушкам нравится писать текстовые литералы в коде, судя по всему
еще раз, обратитие внимание: если убрать хоть один case тут -- оно НЕ скомпилируется
Switch-технология — Википедия
5 июня 2006 г. - В качестве языков алгоритмизации и программирования в системах логического управления в зависимости от типов управляющих вычислительных
(разделить на ПХП умножить на sendmail_
ааа
или на любом другом ЯП, который ты занеш
Язык-на-салфетке потому что
А ведь правда, прототипное ООП в JS начиналось с того, что перед функцией разрешили писать «new».
Черезжопное какое ООП (правда, в перле оно еще более черезжопное)
ООП само по себе тот еще кал, а уж с этим говном и подавно
Мы не сеем
Мы не пишем
Мы валяем дурака
С колокольни хуем машем
Разгоняем облака!
В расте не вызываются drop у статических полей.
нехуй типа их вообще юзать
Не может устоять и хватает
Я хочу селф-референсд структуру. Например в крестушке я могу иметь поле `string` и другое поле на него `string_view`.
Разумеется, я должен явно запретить копирование и муванье (ну или правильно его реализовать) чтобы при муве мой стринг вью не превратился в тыкву.
Это правда? Это так?
Теперь возьмем раст: Там селф-референс структуры это боль и ад во многом потому, что всё мувабл. Запретить копирование я могу (тупо не надо реализовывать клон) но муванье не могу (кроме как через pin, но это ад)
Собссно вопрос: почему, на твой взгляд, в рустне не сделали трейт "UnMovable" чтобы тупо запретить мувинг, и позволить делать наконец селф референс структуры?
Что-то с процессом произошло пока был в фоне
Теперь вместо бравурного менуэта и пох и возрождения звучит минорная версия с ВРМ, замедленным прямо до готичности
Какой belgian new beat )))
Это "Sid Meier's Pirates!", ей еще 25 лет нет
оригинальной-то уже и все тридцать есть
До этого играл в отечественные «Морские Легенды»
Не исключено, что то и другое клоны
я на мегадрайве знатно времени провёл за ним. правда, картридж был тоже "пиратский" и слот под батарейку не завезли, а потому пройти вряд ли бы вышло. хотя я тогда даже и не думал, что игру можно пройти, типа ну плаваешь, торгуешь, воюешь, каких-то баб цепляешь, дуэли там, сокровища, what should we do with a drunken sailor
а в римейк играл буквально в том году. он конечно ок и они там добавили понемногу того и сего, но для своего года выпуска как-то морально устарел. ещё и нампад там нужен
Она 2002 года вроде, а голд 2004
Девушек мышью танцевать не удобно, это да
А вообще по сути это elite и прочая космопижня, только на морскую тематику
А корсаров обоссывали за просраный поворот оверштаг, я даже смотреть на них не стал
Бейонд зе дарк портал!
Ты в JB работаешь?
Кстати, Дурга Софт Мистера Нагура Бабу делает и графический дизайн тоже!
оцени https://www.durgasoftonline.com/
https://i.postimg.cc/gkZLfSQ3/image.png
https://d502jbuhuh9wk.cloudfront.net/orgData/5e356a710cf24531c92ac49f/pages/assets/images/slide1.png
Тут забавный CSS, который пердолит картинку только по ширине в зависимости от размера окна браузера, игнорируя соотношения сторон и не пердоля высоту.
криво вырезал, ещё лучше обтравил и вперде
А может они на мониторах 4:3 сидят?
Т. е. их технология заточена под монитор строго определённого разрешения, на остальных пердолит.
у верстальщшика просто такой монитор был, ну
Я так понимаю, какие-то неземные технологии криво закомментирвали, и они случайно попали плейн-текстом в аутпут.
А что за технологии, кто скажет? Кофескрипт может?
ИНЬЮ ЗАЕБАЛ
ПОЧИНИ ХУХ
похоже на хуй кофе-скрипт, да
проблему мы решили, практику интерну не зачли
проблему мы решили, практику интерну не зачли
пароли не подпадают под ПД?
но вообще ты же знаешь, как это работает: куки ставить нельзя, а пароли хранить плейнтекстом -- можно, и их потом -==hax0r==- за триста евро в даркнете продает вместе с емейлом
типичеый джаваскритер: https://www.npmjs.com/package/is-number
Introducing Wavelet
announcements
HTML content omitted because you are logged in or using a modern mobile device.
Ставишь галочку «вид для ПК» — всё отображается.
Смотришь код страницы, а там
Лол
Ещё меня очень веселит Linux build status и одновременно предложение сразу запустить