使用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

Scala随记的更多相关文章

  1. Spark踩坑记——Spark Streaming+Kafka

    [TOC] 前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端,我们利用了spark strea ...

  2. Spark踩坑记——数据库(Hbase+Mysql)

    [TOC] 前言 在使用Spark Streaming的过程中对于计算产生结果的进行持久化时,我们往往需要操作数据库,去统计或者改变一些值.最近一个实时消费者处理任务,在使用spark streami ...

  3. 深入了解 Scala 并发性

    2003 年,Herb Sutter 在他的文章 “The Free Lunch Is Over” 中揭露了行业中最不可告人的一个小秘密,他明确论证了处理器在速度上的发展已经走到了尽头,并且将由全新的 ...

  4. Scala HandBook

    目录[-] 1.   Scala有多cool 1.1.     速度! 1.2.     易用的数据结构 1.3.     OOP+FP 1.4.     动态+静态 1.5.     DSL 1.6 ...

  5. scala学习笔记(2)

    1 Loop (1) for (i <- 1 to 3){ # 1 2 3 } (2) for (i <- 1 until 3){ #1 2 } (3)过滤 for (i <- 1 ...

  6. Scala学习——基础篇

    [<快学Scala>笔记] 一.基础 1.变量val 标志符: 声明常量: 如,val answer = 1var 标志符:声明变量: 类型推断:变量的类型由scala根据初始化变量的表达 ...

  7. Scala学习之for 循环和 yield 的例子

    for循环中的 yield 会把当前的元素记下来,保存在集合中,循环结束后将返回该集合.Scala中for循环是有返回值的.如果被循环的是Map,返回的就是Map,被循环的是List,返回的就是Lis ...

  8. scala 函数编程

     scala 函数编程  Effective Scala.pdf: http://www.t00y.com/file/76767869 Functional_Programming_in_Scal ...

  9. Spark踩坑记——共享变量

    [TOC] 前言 Spark踩坑记--初试 Spark踩坑记--数据库(Hbase+Mysql) Spark踩坑记--Spark Streaming+kafka应用及调优 在前面总结的几篇spark踩 ...

随机推荐

  1. docker (centOS 7) 使用笔记1

    1. docker配置 初次在安装完docker后,初始化配置 copy默认的docker.service后,重启服务,会在/etc/systemd/system/multi-user.target. ...

  2. java中static变量和方法的总结

    转自:http://blog.csdn.net/haobo920/article/details/5921621 java中static变量和方法的总结 java中一切皆是对象 一个类中对象的定义一般 ...

  3. Keepalived+NFS+SHELL脚本实现NFS-HA高可用

    本来想做DRBD+HEARTBEAT,但是领导说再加硬盘浪费资源,没有必要,而且在已有硬盘上做风险较大,所以就只能用rsync来实现数据同步了,实验中发现很多的坑,都用脚本和计划任务给填上了,打算把这 ...

  4. windows.open 以post的方式传递参数

    今天看到有篇文章寫到 windows.open 可以post方式傳遞參數,就趕緊照作看看,結果是可行的,感謝撰寫這篇文章的作者~ /** * window.open with post method  ...

  5. display的32种写法--摘抄

    你知道『回』字有四种写法,但你知道display有32种写法吗?今天我们一一道来,让你一次性完全掌握display,从此再也不用对它发愁. 从大的分类来讲,display的32种写法可以分为6个大类, ...

  6. Java面试题—字符串

    如果明天你要参加一场面试,面试官有个题目是:说说String/StringBuffer/StringBuilder它们之间的区别?你会怎么回答呢?(脑补一下答案)今天,小编就来和大家详细聊聊字符串St ...

  7. set up trace code tool

    這以 GNU GLOBAL 6.5.6 為示範 1: install GNU GLOBAL https://www.gnu.org/software/global/download.html sudo ...

  8. 开发使用mysql的一些必备知识点整理(四)与python交互

    与python交互 在熟练使用sql语句的基础上,开始使用python语言提供的模块与mysql进行交互 这是我们在工作中大事要做的事 先学会sql是基础,一定要熟练编写sql语句 安装引入模块 安装 ...

  9. 输入框为数字类型时防止maxlength属性不起作用

    <input type="number" oninput="if(value.length>5)value=value.slice(0,5)" /& ...

  10. Codeforces Gym 100431D Bubble Sort 水题乱搞

    原题链接:http://codeforces.com/gym/100431/attachments/download/2421/20092010-winter-petrozavodsk-camp-an ...