Какова была причина ограничить объединение неявных параметров и границ вида / контекста?

Один из последних коммитов в Scala master снимает ограничение на объединение границ контекста / представления с неявными параметрами. Это большое улучшение, которое уменьшает количество шаблонов, но какова была причина того, что мы сделали такое ограничение раньше, и какие последствия мы можем ожидать сейчас?

1 ответ

Решение

Границы контекста и вида добавляют неявные параметры. Так что если вы напишите:

def f[T : Manifest](l: List[T])(implicit ord: Ordering[T]) 

Фактически вместо одного передаются два неявных параметра. Разрешение такого синтаксиса, безусловно, приведет к некоторой путанице в будущем. Поскольку неявное использование параметров начинает становиться все более распространенным, из-за классов типов полезно сделать что-то подобное вышеописанному.

Другие вопросы по тегам