복붙노트

[SCALA] 스칼라 함수 객체의 가변 인자와 오류?

SCALA

스칼라 함수 객체의 가변 인자와 오류?

왜이 작동하지 않는 이유는 무엇입니까?

val f = (args: Int*) => args.sum

error: ')' expected but identifier found.
val f = (args: Int*) => args.sum
                  ^

그러나 이것은 완벽하게 잘 작동

def sum(args: Int*) = args.sum
val f = sum _

그래서이 작업을 수행

val f: (Int*) => Int = args => args.sum

BTW. 나는 스칼라를 사용하고 2.9.1

해결법

  1. ==============================

    1.나는 사양 독서의 전문가 아니에요,하지만이 구문은 익명 함수를 지원하지 않습니다 변수 인수 것 같습니다.

    나는 사양 독서의 전문가 아니에요,하지만이 구문은 익명 함수를 지원하지 않습니다 변수 인수 것 같습니다.

    언어 사양에 익명 함수 대 기능 선언에 대한 구문 비교

    ParamType ::= Type
                  | ‘=>’ Type
                  | Type ‘*’
    
    Binding ::= (id | ‘_’) [‘:’ Type]
    

    나는 그 생각에 대한 어떤 생각이 어떤 이유가 있습니다. 쉽게 설명 할 수 이유가 있지만 아무도 것 같다. 추가 익명 함수에 변수 인수에 마틴 오더 스키는 요청에 댓글을 달았습니다 : "이 모습은 처음에는 유혹하지만 복잡성을 많이 끌 것 (당신은 단지 하나 날 믿어)가 필요합니다."

  2. ==============================

    2.여기 여기 렉스 스푼에 의해 주어진이에 대한 좋은 설명도 있습니다

    여기 여기 렉스 스푼에 의해 주어진이에 대한 좋은 설명도 있습니다

  3. from https://stackoverflow.com/questions/8623126/error-with-varargs-for-function-objects-in-scala by cc-by-sa and MIT license