使用Scala首先确保本地Java 8版本,然后按照官网所说,比较流行的方式(1) sbt; (2) IDE

"The most popular way to get Scala is either using Scala through sbt, the Scala build tool, or to use Scala through an IDE."

但是通过Scala的编译版本,应该会快速的对Scala有个大概的了解 -> RUNNING SCALA BINARIES


(一)开发环境

1. Scala IDE

2. IntelliJ IDEA Community Edition

Scala IDE在Eclipse基础上开发,免费开源,插件多,且能支持像Play这样的Web框架;IDEA社区版支持Scala开发,免费。

由于之前分别使用Eclipse和IDEA进行过Java开发,个人感觉IDEA更加顺畅,适合初学者,选择使用IDEA社区版。

(二)IDEA社区版 - 配置Scala开发环境

按照该blog的方式配置(未使用其中的版本),发现Scala插件版本同IDEA社区版本不兼容,之后还是改成使用HTTP安装插件的方式。

这里顺便说下在IDEA里设置HTTP Proxy的方式,如下:

 

补充以上被抹掉的部分,配置完后可以点击"Check connection"测试下连通性。

(IDEA社区版2018.1将插件安装在"\.IdeaIC2018.1\config\plugins"路径下)


(三)语言特性

(1) 构建在Java基础之上,面向对象+函数式编程;

(2) 变量var val;

(3) Scala中一切皆对象,objects with methods

(4) 不存在操作符重载,像+-*/均可看作方法名 ->  1+2 <=> (1).+(2)

(5) print(greetStrings(0)) <=> print(greetStrings.apply(0)); greetStrings(0) = "Hello" <=> greetStrings.update(0, "Hello")

(6) Unit <=> void; trait <=> interface; implement <=> extend / mix in

(7) mutable: Array/Set/Map; immutable: List/Tuple/Set/Map 像Set/Map,默认采用immutable的

(8) 函数式:no side effects & no var (函数有返回值 & 函数内部没有var变量)

(9) 首先使用val类型变量, immutable对象以及有返回值的函数,其次再考虑使用var类型,mutable对象以及Unit函数

(10)  public是默认的访问权限

(11)  伴生对象/伴生类,静态方法或者工具方法放在单例对象中

(12) main入口 <=> extends App

(13) 比较相等:==, eq, equals

  eq: 判断引用是否一样

  equals: 判断值是否一样

  ==: 如果左边为null,则判断右边是否为null,否则调用equals

最新文章

  1. .Net MVC视图
  2. asp.net mvc常用的数据注解和验证以及entity framework数据映射
  3. WebApi2官网学习记录---BSON
  4. c# 正则表达式对网页进行内容抓取
  5. 【转】Appium测试安卓Launcher以滑动窗体获得目标应用
  6. CODEVS上一道很有趣的题(2145 判断奇偶性)
  7. 【Java学习笔记之十四】Java中this用法小节
  8. Ubuntu 下超简单的安装指定版本的nodejs
  9. Spring Boot Tomcat配置详解
  10. 18-(基础入门篇)GPRS(Air202)拨打电话--(由于板子做修订,所以暂停更新)
  11. Kernel parameters for Db2 database server installation (Linux and UNIX)
  12. html5-article元素
  13. [Unity移动端]Touch类
  14. python可变对象与不可变对象的差别
  15. 2013337朱荟潼 Linux第二章读书笔记——从内核出发
  16. ubuntu下IDEA配置tomcat报错Warning the selected directory is not a valid tomcat home
  17. python simplejson and json 使用及区别
  18. java基础二 java的跨平台特性
  19. (C/C++) Array 印出所有排列組合
  20. PowerDesigner16 时序图

热门文章

  1. java面试题之HashMap和HashTable底层实现的区别
  2. oracle 导出表结构信息
  3. Codevs 3287 货车运输 == 洛谷P1967
  4. 为了防止detailsview中修改后,而girdview却没立即更新显示
  5. js simple drag.
  6. Day 17 编码+文本编辑+函数
  7. [List] C#数组学习
  8. HRBUST 2072:萌萌哒十五酱的礼物~(树,字典树)
  9. indexOf()、includes()、startsWith()、endsWith()
  10. vue 权限控制按钮3种样式、内容、以及跳转事件