我還以爲下面的代碼:混淆縮略地圖
val a = Array(1, 2, 3, 4, 5)
println(a.map(n => "x"))
可以簡寫爲:
val a = Array(1, 2, 3, 4, 5)
println(a.map("x"))
但後者給了我下面的異常。爲什麼是這樣?在在java.lang.String.charAt(String.java:658)1:
java.lang.StringIndexOutOfBoundsException:字符串索引超出範圍: 1 java.lang.StringIndexOutOfBoundsException:字符串索引超出範圍 的 scala.collection.immutable.StringLike $ class.apply(StringLike.scala:52) 在 scala.collection.immutable.WrappedString.apply(WrappedString.scala:33) 在 scala.collection.immutable.WrappedString.apply (WrappedString.scala:33) at scala.collection.TraversableLike $$ anonfun $ map $ 1.apply(TraversableLike.scala:245) at scala.collection.TraversableLike $$ anonfun $ $地圖1.適用(TraversableLike.scala:245) 在 scala.collection.IndexedSeqOptimized $ class.foreach(IndexedSeqOptimized.scala:33) 在 scala.collection.mutable.ArrayOps $ ofInt.foreach(ArrayOps.scala:234) at scala.collection.TraversableLike $ class.map(TraversableLike.scala:245) at scala.collection.mutable.ArrayOps $ ofInt.map(ArrayOps.scala:234)
或者你也可以做'a.map(_ =>「x」)'。這有點像是使用「身份」還是「x => x」之間的爭論。 – acjay 2015-02-23 13:41:27