Size: a a a

2021 March 25

VG

Vadim Goncharov in Modern::Perl
Sergey Zhmylove
Трейт может не реализовывать никакие методы, а роль не может
с чего бы это он "может" ?
источник

VG

Vadim Goncharov in Modern::Perl
Игорь
А где про них хайпят? Есть ссылки? Я что то не нашел ничего особенного, только статью от 2016 года на хабре.
в принципе когда говорят про язык
источник

VG

Vadim Goncharov in Modern::Perl
Anton Petrusevich
трейт отмечается в иерархии наследования, а роль нет
это вопрос реализации
источник

DS

Dmitriy Shamatrin in Modern::Perl
У раста трейты это не наследование, это скорее интерфейс. Изначально нельзя было делать дефолтные реализации методов трейта, теперь можно
источник

DS

Dmitriy Shamatrin in Modern::Perl
Не вижу никакого хайпа по трейтам, есть и хорошо, полезная местами штука
источник

SZ

Sergey Zhmylove in Modern::Perl
Vadim Goncharov
с чего бы это он "может" ?
С его определения (и названия). Трейт это лишь гарантия что класс обладает поведением.
источник

DS

Dmitriy Shamatrin in Modern::Perl
Sergey Zhmylove
С его определения (и названия). Трейт это лишь гарантия что класс обладает поведением.
+
источник

VG

Vadim Goncharov in Modern::Perl
Sergey Zhmylove
С его определения (и названия). Трейт это лишь гарантия что класс обладает поведением.
так он не может обладать поведением без методов
источник

DS

Dmitriy Shamatrin in Modern::Perl
Не может
источник

SZ

Sergey Zhmylove in Modern::Perl
Vadim Goncharov
так он не может обладать поведением без методов
Одно другому не противоречит
источник

DS

Dmitriy Shamatrin in Modern::Perl
В расте никакой рефлексии и прочего добра нет
источник

VG

Vadim Goncharov in Modern::Perl
In computer programming, a trait is a concept used in object-oriented programming, which represents a set of methods that can be used to extend the functionality of a class.[1][2]
источник

SZ

Sergey Zhmylove in Modern::Perl
Трейт гарантирует наличие методов, но не должен их реализовывать
источник

VG

Vadim Goncharov in Modern::Perl
For inter-object communication, traits are somewhere between an object-oriented protocol (interface) and a mixin. An interface may define one or more behaviors via method signatures, while a trait defines behaviors via full method definitions: i.e., it includes the body of the methods. In contrast, mixins include full method definitions and may also carry state through member variable, while traits usually don't.
источник

SZ

Sergey Zhmylove in Modern::Perl
Vadim Goncharov
For inter-object communication, traits are somewhere between an object-oriented protocol (interface) and a mixin. An interface may define one or more behaviors via method signatures, while a trait defines behaviors via full method definitions: i.e., it includes the body of the methods. In contrast, mixins include full method definitions and may also carry state through member variable, while traits usually don't.
Тут написано includes, а должно быть написано may include
источник

VG

Vadim Goncharov in Modern::Perl
Sergey Zhmylove
Трейт гарантирует наличие методов, но не должен их реализовывать
википедия с тобой не согласна
источник

DS

Dmitriy Shamatrin in Modern::Perl
В расте трейт нужен для того чтобы можно было передавать в функцию тип для которого реализован определенный трейт. Это значит что у типа есть нужные методы, то есть, если оно скомпилировалось, то все нужные методы есть, это компайл тайм проверка
источник

SZ

Sergey Zhmylove in Modern::Perl
Vadim Goncharov
википедия с тобой не согласна
Википедия и аикс считает юниксподобным
источник

VG

Vadim Goncharov in Modern::Perl
Sergey Zhmylove
Википедия и аикс считает юниксподобным
правильно делает, не VMS же
источник

SZ

Sergey Zhmylove in Modern::Perl
Увы
источник