Какой экземпляр CanBuildFrom обнаруживает компилятор Scala?

всем . Прошу простить меня за глупый вопрос по Scala. Хотя я программирую на Scala около 2 лет, мне все еще трудно понять неявное использование. Давайте рассмотрим пример:

Array(1,2,3,4).map(x => x) 

Если вы посмотрите скаладок, то не сможете найти метод map в классе Array. Причина, по которой map может применяться на Array(1,2,3,4), заключается в том, что существует неявная функция implicit def intArrayOps (xs: Array[Int]): ArrayOps[Int], определенная в scala.Predef.

Однако, есть два списка параметров, где второй записан как implicit bf: CanBuildFrom[Array[T], B, That]). Теперь интересно, где компилятор находит подходящий аргумент для типа CanBuildFrom при применении map на Array(1,2,3,4).

7
задан 爱国者 28 November 2011 в 08:37
поделиться