1:scala简介
scala是运行在 JVM 上的多范式编程语言,同时支持面向对象 和面向函数编程 早期scala刚出现的时候,并没有怎么引起重视,随着Spark 和Kafka 这样基于scala的大数据框架的兴起,scala逐步进入大数据开发者的眼帘。scala的主要优势是它的表达性。 官网地址:http://www.scala-lang.org
2:scala的REPL交互式解释器
Scala提供的最重要的一个工具是交互模式(REPL)。REPL是一个交互式解释器 ,可以即时编译、运行代码并返回结果,方便前期做学习和测试 启动scala解释器,只需要以下几步
退出scala解释器
3:scala中声明变量
3.1 :语法格式
val/var 变量名称:变量类型 = 初始值
val
定义的是不可重新赋值 的变量(值不可修改)var
定义的是可重新赋值 的变量(值可以修改)注意
scala中声明变量是变量名称在前,变量类型在后,跟java是正好相反
scala的语句最后不需要添加分号
3.2:演示
#使用val声明变量, 相当于java中的final 修饰, 不能在指向其他的数据了
val a: Int = 1
#使用var声明变量, 后期可以被修改重新赋值
var b: Int = 2
b= 20
#scala中的变量的类型可以显式的声明, 也可以不声明, 如果不显式的声明这会根据变量的值来推断出来变量的类型( scala支持类型推断)
val c = 3
3.2:惰性变量
Scala中使用关键字lazy
来定义惰性变量,实现延迟加载(懒加载)。 惰性变量只能是不可变变量,并且只有在调用惰性变量时,才会去实例化这个变量。 语法格式 :lazy val/ var 变量名 = 表达式
4:scala中数据类型
基础类型 类型说明 Byte 8位带符号整数 Short 16位带符号整数 Int 32位带符号整数 Long 64位带符号整数 Char 16位无符号Unicode字符 String Char类型的序列(字符串) Float 32位单精度浮点数 Double 64位双精度浮点数 Boolean true或false
注意下 scala类型与Java的区别
scala中所有的类型都使用大写字母开头 整形使用Int而不是Integer scala中定义变量可以不写类型,让scala编译器自动推断 scala类型层次结构
类型 说明 Any 所有类型 的父类,,它有两个子类AnyRef与AnyValAnyVal 所有数值类型 的父类AnyRef 所有对象类型(引用类型)的父类 Unit 表示空,Unit是AnyVal的子类,它只有一个的实例(),它类似于Java中的void,但scala要比Java更加面向对象 Null Null是AnyRef的子类,也就是说它是所有引用类型的子类。它的实例是null, 可以将null赋值给任何对象类型 Nothing 所有类型的子类 不能直接创建该类型实例,某个方法抛出异常时,返回的就是Nothing类型,因为Nothing是所有类的子类,那么它可以赋值为任何类型