каждый.Пожалуйста, прости меня за глупый вопрос о Скале.Хотя я программирую в Scala около 2 лет, мне все еще трудно понять, что такое implicit
.Давайте рассмотрим пример для обсуждения:
Array(1,2,3,4).map(x => x)
Если вы посмотрите скалярный документ, вы не сможете найти метод map
в классе Array
.Причина, по которой map
может применяться к Array(1,2,3,4)
, заключается в том, что в scala.Predef
определена неявная функция implicit def intArrayOps (xs: Array[Int]): ArrayOps[Int]
.
Однако существует два списка параметров, где второй записывается как implicit bf: CanBuildFrom[Array[T], B, That])
.Теперь мне интересно, где компилятор находит правильный аргумент для типа CanBuildFrom
при применении map
к Array(1,2,3,4)
.