Відмова: Зараз я грав із Go тільки один день, тому є хороший шанс, що я багато чого пропустив.
Хтось знає, чому немає реальної підтримки для генеричних / шаблонів / whatsInAName в Go? Отже, є загальне map
, але це постачається компілятором, тоді як програміст Go не може написати власну реалізацію. Якщо говорити про те, щоб зробити Go максимально ортогональним, чому я можу ВИКОРИСТОВУВАТИ загальний тип, але не СТВОРИТИ новий?
Особливо, що стосується функціонального програмування, є лямбдаси, навіть закриття, але в системі статичного типу бракує дженериків, як я можу писати, ну, такі загальні функції вищого порядку, як filter(predicate, list)
? Гаразд, пов'язані списки тощо можуть бути зроблені з interface{}
жертвою безпеки.
Оскільки швидкий пошук в SO / Google не виявив ніяких розумінь, схоже, що дженерики, якщо вони взагалі будуть додані до Go, як думка. Я довіряю Томпсону, щоб зробити це краще, ніж хлопці з Java, але навіщо тримати генерики? Або вони заплановані і просто ще не виконані?
interface{}
жертвує безпекою статичного типу. Однак це є дещо дивна скарга, коли слід згадати про схему - наступний абзац, оскільки схема зазвичай не має статичної перевірки типу.