注意:这是一个常见问题解答,具体问我所以我可以自己回答,因为这个问题似乎经常出现,我想把它放在一个可以(希望)通过搜索很容易找到的地方
根据我在这里的回答评论提示
例如:
"abcde" map {_.toUpperCase} //returns a String
"abcde" map {_.toInt} // returns an IndexedSeq[Int]
BitSet(1,2,3,4) map {2*} // returns a BitSet
BitSet(1,2,3,4) map {_.toString} // returns a Set[String]
Run Code Online (Sandbox Code Playgroud)
查看scaladoc,所有这些都使用了map继承自的操作TraversableLike,那么为什么它始终能够返回最具体的有效集合呢?甚至String,它map通过隐式转换提供.
关于Scala语言最常见的误解是什么,以及这些例子中存在哪些反例?
UPDATE
我正在考虑更多关于我见过的各种声明,例如"Scala是动态类型"和"Scala是一种脚本语言".
我接受"Scala是[简单/复杂]"可能被认为是一个神话,但它也是一个非常依赖于上下文的观点.我个人认为,这些功能可以使Scala显得简单或复杂,具体取决于谁使用它们.最终,语言只提供抽象,而这就是用来塑造感知的方式.
不仅如此,它还有一定的激烈争论的倾向,而且我还没有看到有人改变对该主题的强烈观点......
我是Scala的初学者.我在eclipse中安装了Scala IDE,现在我想运行我的应用程序.它从未显示"以Scala应用程序运行",而是显示"作为Java应用程序运行"或"Java applet"
我打开"运行配置"并单击"Scala应用程序",我的项目名称为"test",第二列为"Class Main".我需要填写什么?我填写了"Main.Scala",但它声明"找不到mainmain class main.scala".
你能帮助我运行这个项目吗?
由于大多数IDE只能导入Maven项目,我想从SBT托管项目生成POM.xml,有没有更好的方法呢?
在将现有Java代码库逐步迁移到Scala时,需要注意哪些最重要的要点和解决方法?具有(可能非常长)的中间阶段,其中两种语言都在使用中.
我正在考虑的事情是:
在android上使用Scala的权威参考资料似乎在这里:http://www.scala-lang.org/node/160
不幸的是,所有关于在Android上使用scala的引用都是基于Scala 2.7并且引用了一个自定义构建android-library.jar,其中有几个神秘的引用,暗示了android的更高版本不需要这个自定义构建(I' m使用2.1/API v7)
那么......在Android项目中使用Scala 2.8需要哪些步骤?最好使用eclipse和Google为该IDE提供的Android工具.
我正在寻找类似于Scoda的JodaTime或JSR 310的东西,它利用了很好的Scala功能,例如运算符重载,并且不依赖于隐式转换(我对隐式转换有一种非理性的恐惧).
我知道http://github.com/jorgeortiz85/scala-time,但它只是让JodaTime陷入困境.
我会开始滚球.
给定一系列元素,其中一些元素可以被多次包含,一个典型的要求是计算它们 - 以计数或直方图的形式.
经常引用的解决方案是:
ss.groupBy(identity).mapValues(_.size)
Run Code Online (Sandbox Code Playgroud)
那么Scala中常见的类似问题还存在哪些其他解决方案?
有没有办法定义一个Map,其中Map值取决于它的键,比如
Map(key -> f(key), key2 -> f(key2), ...).
Run Code Online (Sandbox Code Playgroud)