Можно использовать один одномерный массив как функцию вДвумерный массив как функцию
def foo1(f: Int => Int) = ???
foo1(Array(1))
Можно использовать функцию с двумя списками аргументов в
def foo2(f: Int => Int => Int) = ???
def plus(x: Int)(y: Int) = x + y
foo2(plus)
Могу ли я объявить функция, которая будет принимать двумерный массив Array(Array(1))
без фактического использования типа объявления Array
? Или он неявно преобразован в Int => Array[Int]
и все?
Дело 'foo1' работает, потому что' Array' неявно преобразуется в 'WrappedArray', который расширяет' Function [Int, _] '. Другой не по нескольким причинам: преобразование не будет применяться к внутренним массивам, а 'WrappedArray' не ковариантно, поэтому даже если преобразование действительно применимо,' WrappedArray [WrappedArray [Int]] 'doesn ' t расширять 'WrappedArray [Int => Int]'. –