這裏是the code that compiles如預期爲什麼沒有;相當於EOL?
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如預期爲什麼沒有;相當於EOL?
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
。
如您所知,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'。 –
換句話說,這是一個解析的東西。類型是不相關的。 –