Size: a a a

2020 July 27

АГ

Алексей Гевондян... in PHP
сейчас до работы доберусь напишу
источник

BT

Bohdan Turchyk in PHP
Алексей Гевондян
если ввести такие интерфейсы как Any, Scalar, Number и т д
а чем эти интерфейсы будут отличаться от типов? и кто будет их реализовывать?
источник

АГ

Алексей Гевондян... in PHP
они могут быть интерфейсами языка, типа Traversable и т д
источник

АГ

Алексей Гевондян... in PHP
мы сейчас говорим о неких абстракциях в вакууме, но ведь код всегда работает с чем-то более определнным, конкретным. если и есть абстракция, то она тоже вполне конкретная (реализует некий вполне конкретный контракт)
источник

АГ

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

R

Roman in PHP
Алексей Гевондян
цель дженериков, кмк, как раз заменить зависимость от неких конкретных типов на зависимость от неких абстрактных типов. вот я и не пойму, почему эту задачу нельзя решить интерфейсами
Как раз интерфейс и есть конкретный тип
источник

АГ

Алексей Гевондян... in PHP
как, если нельзя инстанциировать объект интерфейса? абстрактный же
источник

АГ

Алексей Гевондян... in PHP
имхо дженериков достаточно на уровне SomeInterface[]
источник

DT

Dmitriy Tkachenko in PHP
объект != тип
объект == экземпляр типа
источник

АГ

Алексей Гевондян... in PHP
ну да. интерфейс - частный случай типа
источник

АГ

Алексей Гевондян... in PHP
просто не пойму зачем объявлять "вообще некий тип"... ну давайте заведем interface Any {} тогда, типа Throwable, прям базовый базовый для всего
источник

АГ

Алексей Гевондян... in PHP
раз это зачем-то может быть надо... не пойму правда зачем...
источник

BT

Bohdan Turchyk in PHP
Алексей Гевондян
просто не пойму зачем объявлять "вообще некий тип"... ну давайте заведем interface Any {} тогда, типа Throwable, прям базовый базовый для всего
interface{} передает привет
источник

АГ

Алексей Гевондян... in PHP
ну это го
источник

BT

Bohdan Turchyk in PHP
Алексей Гевондян
просто не пойму зачем объявлять "вообще некий тип"... ну давайте заведем interface Any {} тогда, типа Throwable, прям базовый базовый для всего
затем, чтобы в дженерике можно было потом переиспользовать этот некий тип
источник

АГ

Алексей Гевондян... in PHP
а интерфейс почему нельзя переиспользовать?
источник

BT

Bohdan Turchyk in PHP
Алексей Гевондян
а интерфейс почему нельзя переиспользовать?
потому, что у тебя будет неконкретный интерфейс
источник

BT

Bohdan Turchyk in PHP
давай вот классический пример
источник

A

Aleksandr Khristenko in PHP
Да пусть он реализует мой пример со своими интерфейсами, вполне возможно что тогда поймет.
источник

АГ

Алексей Гевондян... in PHP
пыха транслируемая, динамическая типизация. плюсы, го - статическая типизация, компиляция. их некорректно сравнивать... у них другие базовые принципы работы
источник