首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >开发人员应该学习Java生态系统和语言的哪些部分才能最大限度地利用Scala?

开发人员应该学习Java生态系统和语言的哪些部分才能最大限度地利用Scala?
EN

Stack Overflow用户
提问于 2011-01-20 06:39:19
回答 3查看 1.2K关注 0票数 20

许多用于学习Scala的可用资源都假定有一些Java背景。事实证明,对于没有Java背景的Scala学习者来说,这很有挑战性。

在学习Scala语言时,新的Scala开发人员应该了解哪些Java主义?

例如,了解CLASSPATH是什么、java命令行选项是什么等都很有用……

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-20 07:18:50

这是一个非常好的问题!我从来没有想过人们学习Java只是为了让他们更容易学习Scala……

除了像for循环之类的所有基础知识之外,学习Java泛型真的很有帮助。Scala等效物比Java泛型更强大(也更难理解)。您可能希望找出Java泛型的限制在哪里,然后在哪些情况下可以使用Scala的类型构造函数来克服这些限制。在更基本的层面上,重要的是要知道为什么泛型是必要的,以及Java是如何成为强类型语言的。

Java允许您为一个类使用多个构造函数。当您学习Scala时,这些知识将毫无用处,因为Scala有另一种方法,允许您提供多种方法来创建类的实例。因此,您最好不要深入研究这个Java概念。

下面是Java和Scala之间的一些非常不同的概念。因此,如果您学习了Java概念,然后又想学习Scala中的等价物,那么您应该意识到,Scala等价物与Java版本有很大的不同,典型的Java开发人员很难适应Scala的思维方式。不过,首先习惯Java方式通常会有所帮助,因为它通常更简单、更容易学习。我个人认为Java是入门课程,而Scala是专业版本。

Java可变集合概念与Scala可变/不变differentiation

  • static方法(Java)与单例对象(Scala)

  • for循环
  • Java return语句与Scala函数式风格(“每个表达式返回null的”无值“与Scala更显式的Option Java switch与Scala的match

下面是您可能会从Java标准库中使用的东西的列表,即使您使用Scala进行开发:

  • IO
  • GUI (Scala有一个用于Swing的包装器,但是嘿)
  • URL、URI、Swing

最后是Scala的一些特性,这些特性在Java或Java标准库中没有直接的等价物:

作为values

  • actors

  • streams

  • Scala模式匹配的conversions

  • multiple集合运算符overloading

  • implicits和隐式conversions

  • multiple参数列表/ currying

  • anonymous函数/函数(像map

  • 操作一样的fold集合操作

当然,所有的列表都是不完整的。这只是我对什么是重要的看法。我希望它能帮上忙。

顺便说一句:您绝对应该了解类路径和其他JVM基础知识。

票数 9
EN

Stack Overflow用户

发布于 2011-01-20 06:43:27

最重要的是标准库,因为这是Scala与Java的最大共同点。

您还应该对Java的语法有一个基本的了解,因为很多书最后都是将Scala中的某些东西与Java中的某些东西进行比较。但除了平台和一些库之外,它们是完全不同的语言。

有一些琐碎的约定从一个传递到另一个(比如命令行选项),但是当您阅读关于Scala的书籍和教程时,无论以前的Java经验如何,您都应该学习这些约定。

票数 4
EN

Stack Overflow用户

发布于 2011-01-20 06:44:52

"Scala for Java Refugees“系列文章提供了一些关于您应该知道典型Java语言主题以及如何将它们转换为Scala语言的说明。

例如,非常基本的Scala函数,它可以转换为Application特征、once considered harmfulnow improved (无论如何都是针对Scala2.9)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4741626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档