このエラーメッセージに関するご質問は非常にありますが、この問題に関するものはありません。Scalaの引数型オーバーロードでの匿名関数のタイプ
The argument types of an anonymous function must be fully known. (SLS 8.5)
コードの問題のあるブロックは、引数がプロセスにマッチしたパターンとすることができる追加の利点と、Rubyのブロックの機能をエミュレートしようとしています。
object Block {
def apply(f: => Unit) = apply((_: String) => f)
def apply(f: String => Unit) = ???
}
def example() = {
Block { // Error!
case "A" => println("First letter of the alphabet")
case _ => println("Not the first letter of the alphabet")
}
}
1つの行が表示されても、Scalaは文字列と一致していることがわかりますが、引数の型を推論することはできません。