def coarse_grained: Int = {
def fib: Int = List(1,2) sum ;
fib
}
def coarse_grained: Int = {
def fib: Int = List(1,2) sum
fib
}
유일한 차이점은 sum
후 ;
이다 the code that compiles 의도이다.
def coarse_grained: Int = {
def fib: Int = List(1,2) sum ;
fib
}
def coarse_grained: Int = {
def fib: Int = List(1,2) sum
fib
}
유일한 차이점은 sum
후 ;
이다 the code that compiles 의도이다.
알고 계신대로 List(2,6,9).drop(1)
은 List(2,6,9) drop 1
으로 작성할 수도 있습니다. 사실, 이것 역시 이렇게 쓰여질 수 있습니다.
List(2,6,9) drop
1
컴파일러는 줄 바꿈 이후에도 최종 인수를 찾고 있습니다. 따라서 List(1,2).sum
을 List(1,2) sum
과 같이 사용하려면 최종 인수를 찾기 위해 컴파일러에 알리려면 세미콜론 ;
을 사용해야합니다. 오지 않을거야.
세미를 추가하는 대신 빈 줄 (추가 줄 바꿈)을 추가하는 것이 더 일반적입니다. –
@ som-snytt, 감사합니다. 나는 그것을 몰랐다. 사실, 나는 결코 그들 중 하나 (세미콜론이나 빈 줄)를 사용하지 않을 것이다. 도트 구문은 훨씬 명확하고 안전합니다. – jwvh
예, 답변은 적합하지만 질문은 유형에 따라 다릅니다. 유형에 대한 질문은 중복되지 않습니다. 나는 일반적인 것을 묻는다. 그래서 제 제형을 선호해야합니다 (적어도 보존해야합니다). –
유형이 다른 것은 없습니다. 접미사 표기법 위치에서'List [T] .sum'를 호출하고 있지만, 컴파일러는이를 중위 표기법으로 추론하여'List (1,2) .sum (fib)'를하려고하는데, fib' 메소드는'Unit'을 리턴하고 Int는 리턴하지 않습니다. –
즉, 구문 분석의 문제입니다. 유형은 부적합합니다. –