유형

2017-10-24 19 views
0

나는이 (넌센스) 함수를 정의하는 경우 :유형

def g[A](f: (A*) => A): Int = { 
    10 
} 

왜 컴파일러 유형은 다음과 같은 경우를 확인하지 않습니다? 내 말은

def add(x: Int, y: Int) = x+ y 

g(add) 

,해야하지 (A*)-(A, A) 유형 검사?

답변

0

(A, A)튜플 (Tuple2)이며, 그러므로 않는 (A*)에 입력 체크. 실제로 A*을 만 기능은 g에 예컨대 :

def add(ints: Int*): Int = ints.sum 
+0

감사를 전달할 수 있습니다. 사용자가 시퀀스에 대해 생각하는 함수를 작성하도록 요청하지 않고 어떻게 처리 할 것인가에 대한 제안 (예 :'ints.sum')? –

+1

또는'def add (ints : Seq [Int])'입니다. 'add _'는 반복 된 param을 보존하는 데 사용됩니다. –