Size: a a a

2020 March 03

Т8

Т-34 85 in rust_offtopic
λоλторт
Это не типы с т.з. теории типов
Блядь, я когда-то участвовал в этом сраче в этом чате
источник

λ

λоλторт in rust_offtopic
Т-34 85
Блядь, я когда-то участвовал в этом сраче в этом чате
Охотно верю
источник

p

polunin.ai in rust_offtopic
Т-34 85
Вот там вполне должно работать
Там нельзя указать
foo: Foo = Bar() и вызвать метод Foo.bar() если он переопределен в Bar
источник

Т8

Т-34 85 in rust_offtopic
λоλторт
Охотно верю
И пришёл к выводу, что сути дела не меняет, на практике тоже самое
источник

V

Vabka in rust_offtopic
λоλторт
Как это в машинный код будет генерироваться?
а как сейчас в машинный код всё генерируется?)
источник

V

Vabka in rust_offtopic
компилятор заинлайнит параметры по-умолчанию, ибо никаких препятствий тут нет, тк константы
источник

p

polunin.ai in rust_offtopic
polunin.ai
Там нельзя указать
foo: Foo = Bar() и вызвать метод Foo.bar() если он переопределен в Bar
Вызывается всегда метод объекта
источник

Т8

Т-34 85 in rust_offtopic
polunin.ai
Там нельзя указать
foo: Foo = Bar() и вызвать метод Foo.bar() если он переопределен в Bar
Да, динамическая типизация - эт песдец
источник

V

Vabka in rust_offtopic
будет две новые функции - с разными аргументами
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
Но абстрактных методов нет
Есть
источник

EG

Emmanuel Goldstein in rust_offtopic
Но плохие
источник

V

Vabka in rust_offtopic
polunin.ai
В питоне нет интерфейсов...
#define интерфейс контракт
источник

p

polunin.ai in rust_offtopic
Декоратор это не то)
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
Декоратор это не то)
abc
источник

p

polunin.ai in rust_offtopic
Он выдаст ошибку?
источник

DS

Doge Shibu in rust_offtopic
Т-34 85
А в каких случаях это нужно?
Как пример - сериализация без рефлексии. Делаешь трейт:
trait MySerialization {
 fn serialize(&self) -> Vec<u8>
}


Ты хочешь обьявить такую свою абстракцию для примитивных типов и типов из стандратной библиотеки.

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

А в случае тайпклассов - оно работает из коробки, т.к. ты можешь реализовать свои тайпклассы для чужих типов.

Поэтому библиотеки на тайпклассах получаются более модульными и удобными для конечного пользователя без потерь в типобезопасности.
источник

V

Vabka in rust_offtopic
polunin.ai
У раста такой синтаксис только для примитивных типов работает
не важно.
источник

p

polunin.ai in rust_offtopic
Ошибка будет при попытке создания такого класса?
источник

λ

λоλторт in rust_offtopic
Т-34 85
И пришёл к выводу, что сути дела не меняет, на практике тоже самое
На практике понятия должны что-то значить, если решить, что динамический "тип" это тип, то понятие типа ничего не значит
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
Ошибка будет при попытке создания такого класса?
Да
источник