Khi tôi cố gắng bỏ qua dấu chấm từ lời gọi phương pháp, như trong chương trình ví dụ này:"Phương pháp đệ quy <method name> cần loại" trong Scala nghĩa là gì?
object Test extends Application {
val baz = new Baz
var foo = baz bar
println(foo)
}
class Baz {
def bar = "bar"
}
tôi nhận được lỗi lạ. Người đầu tiên là error: recursive method foo needs type: println foo
và người kia là error: type mismatch; found: Unit, required: Int, println(foo)
. Lỗi đầu tiên là một số cách kỳ lạ cố định nếu tôi chỉ định rằng loại foo
nên là String. Cái thứ hai sẽ không biến mất trước khi tôi đặt dấu chấm giữa baz
và bar
. Nguyên nhân của việc này là gì? Tại sao Scala nghĩ rằng baz bar
là một phương pháp đệ quy?
Tương tự: http://stackoverflow.com/questions/2246212/why-does-scalas-semicolon-inference-fail-here – missingfaktor