Tôi không hiểu tại sao đoạn code sau đây không biên dịch:Bỏ dấu chấm khi chaining cuộc gọi
class Abc
{
def b (x : String) = x + "abc"
def a (y : String) =
{
val ls : List[String] = y.lines toList
b (ls.head)
}
}
Main.scala: 8: lỗi: loại không phù hợp; tìm thấy: java.lang.String yêu cầu: Int b (ls.head)
Khi tôi thay đổi "y.lines ToList" để
y.lines.toList
hoặc thậm chí đến
y.lines toList;
nó biên dịch.
Có lẽ trình biên dịch hiểu nó như
(y.lines).toList(b (ls.head))
hoặc một cái gì đó như thế, nhưng tôi vẫn không hiểu các quy tắc.
Bạn có thể chèn câu lệnh của mình '(y.lines) .toList (b (ls.head)) ' (tốt, có thể bạn đã làm điều đó?) Trong REPL, để xác minh rằng errormessage là như nhau. Vâng - tôi đã làm nó, và trên thực tế, nó là. :) –
Đó là lý do tại sao tôi không khiến mọi người rên rỉ về ';'. – Raphael