Size: a a a

2021 March 14

А

Алексей in rust_offtopic
Stanislav Popov
мне нравится как откат в динамику ты называешь питонизмами
это не я начал
источник

SP

Stanislav Popov in rust_offtopic
да я знаю что Жерзи начал
источник

А

Алексей in rust_offtopic
но вообще стоит заметить что го как динамический язык весьма хуёвый
источник

SP

Stanislav Popov in rust_offtopic
ну, ёмко
источник

А

Алексей in rust_offtopic
и хуже того же питона
источник

SP

Stanislav Popov in rust_offtopic
ну для динамики эксепшены и репл нужен да
источник

А

Алексей in rust_offtopic
для динамики нужна динамика, лол
источник

А

Алексей in rust_offtopic
в го лишь пустой интерфейс и рефлексия
источник

А

Алексей in rust_offtopic
динамика курильщика
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Мимо Проходящий
Не, питонизмы это отдельная тема. В го а основном юзаются обычные типизированные интерфейсы, я про них говорил. Их то конпилятор чекает как надо
ну надо смотреть уже по факту
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
а, вспомнил важный плюс
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
с номинальной типизацией можно в доке увидеть все интефрейсы, которые тип реализует
источник

А

Алексей in rust_offtopic
вот это реально важный плюс, согласен
источник

МП

Мимо Проходящий... in rust_offtopic
(
Не ругнется при даункастах i.(T), не ругнется если у вас либа или "библиотечный" модуль, потому что имплементирующие типы нигде не используются, а высовываются наружу

Короче, проблема переносится на самый поздний момент, когда тип уже должен использоваться как интерфейс
> Не ругнется при даункастах i.(T),

это другая история вообще то, но даункаст  же чекают if p,ok:=i.(T); ok{ p.foo()}

> не ругнется если у вас либа или "библиотечный" модуль, потому что имплементирующие типы нигде не используются

не понял)
источник

МП

Мимо Проходящий... in rust_offtopic
Αλεχ Zhukovsky
с номинальной типизацией можно в доке увидеть все интефрейсы, которые тип реализует
вообще для таких штук есть GoLand, он всё что надо кажет, но нафига нам это знать, не пофигу ли?
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Мимо Проходящий
вообще для таких штук есть GoLand, он всё что надо кажет, но нафига нам это знать, не пофигу ли?
когда ты исследуешь чужую либу и хочешь понять че она вообще умеет - совсем не пофигу
источник

(

( in rust_offtopic
Мимо Проходящий
> Не ругнется при даункастах i.(T),

это другая история вообще то, но даункаст  же чекают if p,ok:=i.(T); ok{ p.foo()}

> не ругнется если у вас либа или "библиотечный" модуль, потому что имплементирующие типы нигде не используются

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

Ну вот вы написали библиотеку, где
type Heh interface {
 Mda()
}

type MyLibraryType struct {
 ...
}

func (t MyLibraryType) Mda() {
 ...
}
А потом бац, и у Heh.Mda меняется сигнатура, а у MyLibraryType.Mda нет. А вы об этом не узнаете
Обкакулька
источник

МП

Мимо Проходящий... in rust_offtopic
Αλεχ Zhukovsky
когда ты исследуешь чужую либу и хочешь понять че она вообще умеет - совсем не пофигу
ну ок, посмотрю в GoLand. Он покажет в т.ч. и какие типы данный интерфейс имплементят
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Мимо Проходящий
ну ок, посмотрю в GoLand. Он покажет в т.ч. и какие типы данный интерфейс имплементят
какие типы имплементят интерфейс это хорошо. А все интерфйсы которые тип имплементит он напишет? Ну как тут вот например
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
источник