环境搭建
官网下载安装包,安装配置环境变量:http://www.scala-lang.org/download/
安装教程,自行搜索。
IDEA开发Scala,需要安装对应的scala插件。
简单实例
先来个行业标准的入门例子:
创建 SayHello.scala
object SayHello {
def main(args: Array[String]): Unit = {
println("Hello, Scala!")
}
}
简述Scala
Scala跟Java很类似,所以学起来还是比较好理解其中的内容。自己动手的不难发现相比Java语法,行末的“;”可加可不加。
“Scala是一种纯粹的面向对象编程语言,而又无缝地结合了命令式编程和函数式编程风格。”看到这句话可能有点懵,因为目前在大数据团队,身边的ETL(数据清洗转换)开发人员比较多,写SQL逻辑、shell编程的不太理解我们Java为什么要那么臃肿的代码实现。所以Scala就是一个折中的效果,既是面向对象编程,又是命令式、函数式编程风格。这应该是取各方优良品质的结合体吧。
数据类型
数据类型,跟Java大部分类似,但是还是有小部分存在差异,例如:
Java中的void修饰方法无返回值,而Scala用Unit表示。
Nothing Nothing类型在Scala的类层级的最低端;它是任何其他类型的子类型。
Any Any是所有其他类的超类(我理解为Java中的Object)
AnyRef AnyRef类是Scala里所有引用类(reference class)的基类
定义变量
定义变量,val、var、lazy val ,我第一感觉这像Javascript的写法。
var 定义变量
val 定义常量
lazy val 惰性求值常量
可能lazy val惰性求值常量有点不好理解,这是指该变量第一次被使用时,才会计算对应的值。如下代码片示例
scala> val s1 =10
s1: Int = 10
scala> val s2 = 20
s2: Int = 20
scala> lazy val lv3 = s1*s2
lv3: Int = <lazy>
scala> lv3
res2: Int = 200
函数方法
Scala 函数定义格式如下:
def functionName(param:ParamType):ReturnType = {
function body
return [expr]
}
修饰符
Scala 访问修饰符基本和Java的一样,分别有:private,protected,public(默认)。
数组
Scala 数组,和其他编程语言一样,数组是个很重要角色。它可以存储长度固定的一组值。
// 第一种方式,先声明,再赋值
var arr1 = new Array[String](3)
arr1(0) = "百度"; arr1(1) = "阿里"; arr1(4/2) = "腾讯"
// 第二种方式,声明同时赋值
var arr2 = Array("博客", "论坛", "学院")
Scala 集合
除了熟悉的Set、List、Map、Iterator,还有元组,可以保存不同类型的元素;还有Option,有可能包含值的容器,也可能不包含值。
// 定义List
val list = List(1,2,3,4)
// 定义 Set
val set = Set(1,3,5,7)
// 定义 Map
val map = Map("one" -> 1, "two" -> 2, "three" -> 3)
// 创建两个不同类型元素的元组
val tuples = (10, "Runoob")
// 定义 Option
val options:Option[Int] = Some(5)
// 定义 Iterator
val iterator = Iterator("no.1","no.2");
各种集合也有许多丰富的方法函数供调用,查找对应的API即可。
未完,待续。。。
以上内容为自己学习理解,仅供参考,如有理解错误,请评论指正,谢谢!