Какова была причина ограничить объединение неявных параметров и границ вида / контекста?
Один из последних коммитов в Scala master снимает ограничение на объединение границ контекста / представления с неявными параметрами. Это большое улучшение, которое уменьшает количество шаблонов, но какова была причина того, что мы сделали такое ограничение раньше, и какие последствия мы можем ожидать сейчас?
1 ответ
Решение
Границы контекста и вида добавляют неявные параметры. Так что если вы напишите:
def f[T : Manifest](l: List[T])(implicit ord: Ordering[T])
Фактически вместо одного передаются два неявных параметра. Разрешение такого синтаксиса, безусловно, приведет к некоторой путанице в будущем. Поскольку неявное использование параметров начинает становиться все более распространенным, из-за классов типов полезно сделать что-то подобное вышеописанному.