時,我不明白爲什麼下面的代碼不會編譯:省略點鏈接調用
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:錯誤:類型不匹配; 發現:java.lang.String中 需要的:int B(ls.head)
當我改變 「y.lines toList」 到
y.lines.toList
或甚至
y.lines toList;
它確實編譯。
也許編譯器能像
(y.lines).toList(b (ls.head))
或類似的東西,但我還是不明白的規則。
你可以在REPL中插入你的語句'(y.lines).toList(b(ls.head)) '(嗯,也許你這樣做了嗎?)來驗證錯誤消息是否相同。那麼 - 我做到了,事實上,它是。 :) – 2011-01-28 03:04:27