2017-03-04 59 views
-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> 
+1

爲什麼標籤爲java和js? – GhostCat

+0

你有什麼想法嗎? – Rumid

回答

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

返回 ......是不是一回事?

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

一方面,下劃線_,只代表一次傳入的參數。如果您遇到類似_ + _的情況,則不表示參數已添加到自身,它表示添加了兩個不同的傳遞參數。

那麼什麼是(_:String).indexOf("123")?它是一個匿名函數,它接受String類型的一個參數,並嘗試查找可找到子字符串「123」的索引。在這種情況下,下劃線與發送到foreach lambda的參數無關。