-2
scala> var a = List("1","2","3")
a: List[String] = List(1, 2, 3)
scala> a.foreach(_ => print((_:String).indexOf("123")))
< function1> < function1> < function1>
scala> var a = List("1","2","3")
a: List[String] = List(1, 2, 3)
scala> a.foreach(_ => print((_:String).indexOf("123")))
< function1> < function1> < function1>
a.foreach(_ => print((_:String).indexOf("123")))
返回
a.foreach(x => print((x:String).indexOf("123")))
一方面,下劃線_
,只代表一次傳入的參數。如果您遇到類似_ + _
的情況,則不表示參數已添加到自身,它表示添加了兩個不同的傳遞參數。
那麼什麼是(_:String).indexOf("123")
?它是一個匿名函數,它接受String
類型的一個參數,並嘗試查找可找到子字符串「123」的索引。在這種情況下,下劃線與發送到foreach
lambda的參數無關。
爲什麼標籤爲java和js? – GhostCat
你有什麼想法嗎? – Rumid