Scala lambda函数强调语法

时间:2017-05-26 09:52:56

标签: scala

第二个函数执行或编译的原因是什么:

case class Person(name: String)
def f1(op: Option[Person]) = op.map(p => Seq(p.name)) // GOOD
def f2(op: Option[Person]) = op.map(Seq(_.name))      // WRONG

P.S。我看到评论指向stackoverflow.com/a/7673633/6059889作为问题的答案,但我不明白这是如何回答的。根据规则2,我希望Seq(_.name)成为x => Seq(x.name),这应该有效。

P.P.S。感谢Dima,链接到:Underscore in Named Arguments链接到_总是选择它可以的最严格的非退化范围,我明白了。

0 个答案:

没有答案