这里是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'。 –
换句话说,这是一个解析的东西。类型是不相关的。 –