scala> var a = List("1","2","3")
a: List[String] = List(1, 2, 3)
scala> a.foreach(_ => print((_:String).indexOf("123")))
< function1> < function1> < function1>
答案 0 :(得分:2)
a.foreach(_ => print((_:String).indexOf("123")))
......和......不是一回事。
a.foreach(x => print((x:String).indexOf("123")))
首先,下划线_
仅表示一次传递参数。如果您遇到类似_ + _
的内容并不意味着参数已添加到自身,则表示添加了两个不同的传递参数。
那么(_:String).indexOf("123")
是什么?它是一个匿名函数,它接受一个String
类型的参数,并尝试查找子字符串&#34; 123&#34;可以被找寻到。在这种情况下,下划线与发送到foreach
lambda的参数无关。