入门"/>
Sala入门
目录
Scala概述
var vs val
Scala基本数据类型
lazy在Scala中的应用
Scala概述
Hadoop生态圈:语言常用Java
Spark生态圈:语言常用scala
scala运行于Java平台(Java虚拟机)之上,兼容现有的Java程序,scala的编译模型(独立编译、动态类加载)与Java和C#一样,所以scala代码可以调用Java类库
由于其运行于Java平台之上,所以首先你需要有一个JDK,1.8以上的版本,java -version
(Make sure you have version 1.8 or 11.),scala版本选择的是2.11.8,系统是mac,直接去官网下载解压就可以了,在配置一下系统环境变量。
scala美航代码并不强求使用;结束。
var vs val
- val: 值
- 类比Java的final, 例如final int num= 100;
- val 值名称: 类型=xxx
- val定义的,不可以重新赋值
- var:变量
- var 变量名称: 类型=xxx
- var定义的,可以重新赋值,但是必须是同类型的
Scala基本数据类型
- Byte/Char
- Short/Int/Long/Float/Double
- Boolean
scala VS Java
- 相同点
- Boolean类型只能是true或者false
- 整形字面值默认类型是Int,浮点型字面值默认类型是Doble(例如,10.0是Double而不是Float,例如val e: Float = 1.0f,不可以写成val e: Float = 1.0,因为1.0是Double类型的,不能用于Float类型的赋值),得到Long 类型,字面值后面加L(例如3L),得到Float类型,字面值后面加f(例如3.0f)
- 小类型向大类型可以隐式转换,大类型像小类型转换需要强转
- 些微的区别
- Java的基本数据类型的名字是小写的
- Java判断引用是否是类的实例:引用 instanceof 类型,scala: 值/变量.isInstanceOf[类型]
-
String str = "op"; System.out.println("a" instanceof String); //输出:true System.out.println("a" instanceof String); //输出:true System.out.println(1 instanceof int);// 报错:意外的数据类型,需要引用,找到int
2.isInstanceOf[Int] // res1: Boolean = truevar num = 3L //num: Long = 3 num.isInstanceOf[Int] //res2: Boolean = falseval num1: Int = 3//num1: Int = 3 num1.isInstanceOf[Long]//res3: Boolean = false
-
- 关于类型转换
-
int num = (int)3.0;
var d: Double = 4.0f //d: Double = 4.0,隐式转换:小类型=>大类型 val num1: Int = d.asInstanceOf[Int] //num1: Int = 4var num:Int = 3.0.asInstanceOf[Int] //num: Int = 3
-
lazy在Scala中的应用
lazy是延迟加载的意思,只有在第一次使用的时候才会加载
例如:
scala> val i = 1 //i: Int = 1scala> lazy val a = 1 //a: Int = <lazy>
scala> a //res0: Int = 1
参考:慕课网-学习Scala进击大数据Spark生态圈,收获高薪未来
更多推荐
Sala入门
发布评论