为什么S:String.indexOf(T:Substring)在scala中返回<function1>

时间:2017-03-04 09:46:38

标签: scala

scala> var a = List("1","2","3")

a: List[String] = List(1, 2, 3)

scala> a.foreach(_ => print((_:String).indexOf("123"))) 

< function1> < function1> < function1>

1 个答案:

答案 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的参数无关。