LINUX.ORG.RU

История изменений

Исправление korvin_, (текущая версия) :

в Golang их подход с автоприменением к типу подходящих интерфейсов очень похож на хаскел , а если точнее на математику

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

Не так уж и похож: в Хаскелле тайпкласс можно реализовать для любого типа в любом модуле, в Go — только в том же пакете, что и сам тип. Соответственно, если автор типа не реализовал какой-то нужный тебе метод, тебе придется создавать новый тип и кастовать/оборачивать его тип. Для единичного значения это еще не так напряжно, но для коллекций (слайсов, мапов и т.д.) уже нужно будет обходить всю коллекцию и создавать новую.

Исходная версия korvin_, :

в Golang их подход с автоприменением к типу подходящих интерфейсов очень похож на хаскел , а если точнее на математику

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

Не так уж и похож: в Хаскелле тайпкласс можно реализовать для любого типа в любом модуле, в Go — только в том же пакете, что и сам тип. Соответственно, если автор тип не реализовал какой-то нужный тебе метод, тебе придется создавать новый тип и кастовать/оборачивать его тип. Для единичного значения это еще не так напряжно, но для коллекций (слайсов, мапов и т.д.) уже нужно будет обходить всю коллекцию и создавать новую.