Разрешение перегрузки в Scala учитывает только первый список параметров. Вот почему альтернативы должны отличаться уже в этом списке. Для этого есть веская причина: мы можем использовать тип разрешенной функции, чтобы определить тип последующих аргументов. Это включает идиомы, такие как:
xs.corresponds(ys) { (x, y) => x < y }
Обратите внимание, что здесь нам нужно знать тип corresponds
, чтобы вывести типы x
и y
. Было бы стыдно, если бы это сломалось, когда corresponds
перегружен.