scala> val shares = Map("Apple" -> 23, "MicroSoft" -> 50, "IBM" -> 17)
shares: scala.collection.immutable.Map[java.lang.String,Int]
= Map(Apple -> 23, MicroSoft -> 50, IBM -> 17)
scala> val shareholders = shares map {_._1}
shareholders: scala.collection.immutable.Iterable[java.lang.String]
= List(Apple, MicroSoft, IBM)
scala> val newShares = shares map {case(k, v) => (k, 1.5 * v)}
newShares: scala.collection.immutable.Map[java.lang.String,Double]
= Map(Apple -> 34.5, MicroSoft -> 75.0, IBM -> 25.5)
从这个例子看来,map
方法在返回类型上被重载。在返回类型上重载是不可能的吧?请有人解释一下这里发生了什么?返回类型重载?
这是自从我开始编程是我所见过最可怕的事情。 – 2010-05-02 15:12:38
编写这种'map'方法很困难,但通常很容易使用。 – retronym 2010-05-02 17:49:35
@GreenHyena只为PHP开发人员:) – expert 2013-04-30 02:56:00