Scala随记
使用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随记的更多相关文章
- Spark踩坑记——Spark Streaming+Kafka
[TOC] 前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端,我们利用了spark strea ...
- Spark踩坑记——数据库(Hbase+Mysql)
[TOC] 前言 在使用Spark Streaming的过程中对于计算产生结果的进行持久化时,我们往往需要操作数据库,去统计或者改变一些值.最近一个实时消费者处理任务,在使用spark streami ...
- 深入了解 Scala 并发性
2003 年,Herb Sutter 在他的文章 “The Free Lunch Is Over” 中揭露了行业中最不可告人的一个小秘密,他明确论证了处理器在速度上的发展已经走到了尽头,并且将由全新的 ...
- Scala HandBook
目录[-] 1. Scala有多cool 1.1. 速度! 1.2. 易用的数据结构 1.3. OOP+FP 1.4. 动态+静态 1.5. DSL 1.6 ...
- 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 ...
- Scala学习——基础篇
[<快学Scala>笔记] 一.基础 1.变量val 标志符: 声明常量: 如,val answer = 1var 标志符:声明变量: 类型推断:变量的类型由scala根据初始化变量的表达 ...
- Scala学习之for 循环和 yield 的例子
for循环中的 yield 会把当前的元素记下来,保存在集合中,循环结束后将返回该集合.Scala中for循环是有返回值的.如果被循环的是Map,返回的就是Map,被循环的是List,返回的就是Lis ...
- scala 函数编程
scala 函数编程 Effective Scala.pdf: http://www.t00y.com/file/76767869 Functional_Programming_in_Scal ...
- Spark踩坑记——共享变量
[TOC] 前言 Spark踩坑记--初试 Spark踩坑记--数据库(Hbase+Mysql) Spark踩坑记--Spark Streaming+kafka应用及调优 在前面总结的几篇spark踩 ...
随机推荐
- P3285 松鼠的新家 (树链剖分)
题目描述 松鼠的新家是一棵树,前几天刚刚装修了新家,新家有n个房间,并且有n-1根树枝连接,每个房间都可以相互到达,且俩个房间之间的路线都是唯一的.天哪,他居然真的住在”树“上. 松鼠想邀请小熊维尼前 ...
- 关于ubuntu的对拍
感谢夏天dl的blog,写的十分清楚,但是本人对于ubuntu十分不熟悉 所以不怎么会使用. 对拍的可执行文件是sh,就是bash语言 #!bin/bash while true; do ./date ...
- C语言第三题
1.完成char *p,char *q 的字符串比较,相等返回1,错误返回-1 2.用户需要计算的2个20位数数字的加法,写程序实现让用户输入两个20位以上的数字并且相加,输出结果
- elasticsearch优酷教程
犹学达的教程,可以用youku搜索一下,很不错
- JS中使用EL表达式方法与获取工程名字
关键: 在js中使用el表达式一定要使用双引号 分两种情况 1. JS代码在JSP页面中, 这可以直接使用EL表达式. 如: <script type="text/javas ...
- Scrapy学习-12-使用DownloaderMiddleware随机修改User-Agent
随机替换请求头中的User-Agent 基于github开源项目,实现User-Agent的动态切换和管理 https://github.com/hellysmile/fake-useragent ...
- 这是一份很有诚意的2017 Google I/O大会的汇总 & 解析
前言 在刚过去的凌晨(北京时间 5月18日 1.00-3.00),一年一度的2017年Google I/O大会在美国谷歌山景城海岸线圆形剧场如期举行 Google I/O 大会:Innovation ...
- hdu 1796(容斥原理+状态压缩)
How many integers can you find Time Limit: 12000/5000 MS (Java/Others) Memory Limit: 65536/32768 ...
- 转:c++ Oracle OCCI 编程
原地址http://blog.sina.com.cn/s/blog_53a72add01015zj4.html 找不到具体的出处,只好不写了. OCCI数据库ORACLE编程步骤1. 配置环境(1) ...
- js-input file 文件上传(照片,视频,音频)
在此做一个笔记 <input type="file" accept="image/*" capture="camera"> &l ...