scala学习第一弹:基本语法和语法特性

scala很多人都没有听说过,但是spark肯定如雷贯耳了,而spark就是用scala编写的,所以为了更好地了解scala,我们需要学习scala,接下来我将用博客记录我学习scala的全部过程!

推荐书籍《scala for th impatient》入门

《scala in depth》深入

一、语法特性

scala是一种面向对象的函数式编程语言,其函数式编程特性对使用者有着巨大的吸引力。

scala是静态类型语言,运行在jvm之上,可以和java互操作(使用java的类)。

scala是可以像python一样使用交互式界面的,这一点比java好太多。

推荐IDE:IntelliJIDEA,eclipse for Scala

二、基本语法

1.值与变量

值:val x=3

值x不可变

变量:var x=3

变量x可变

scala可以自动检测赋值的类型,当然也可以自己指定

var x:Int =3

2.常用的基本数据类型

Byte Char Short Int Long Float Double Boolean 

3.方法(函数)定义

def 方法名(参数名:参数类型,):返回类型={

//block内最后一行为返回值,所以没有必要显示地return一个数值

}

当返回为Unit类型时,也就说方法没有返回值,可以简略为

def 方法名(参数名;参数类型,){

//block

}

如果函数没有函数,定义了一个函数printHello(),调用时可以直接只写函数名printHello就好!

如果block可以看成是一个大的表达式,如果block比较简单,如只由一行表达式构成,那么可以去掉block的花括号。

scala没有静态方法,通过Object实现。

4.一切皆对象

举个例子,简单的数字1,它也是对象,是有属性的。

1.to(10)将返回scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

1 to 10能达到同样的结果。Python中返回数字序列用的是1:11

5.分行写时语句中止不用写分号

case1:
表达式1;表达式2
case2:
表达式1
表达式2

6. 1 to 10 和 1 until 10 和Range

1to 10 scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

1 until 10 scala.collection.immutable.Range = Range(1, 2, 3, 4, 5, 6, 7, 8, 9)

Range(1,10)
res10: scala.collection.immutable.Range = Range(1, 2, 3, 4, 5, 6, 7, 8, 9)

7.循环表达式

for while to Range until 没有continue 和 break

8.lazy value

只有用到时才初始化,关键字lazy,只能加在val之前,而不能加在var之前。适用于定义不确定后续会不会用来的变量,可以减少计算量。

9.函数参数

默认参数“大法好”,带名参数“随便放”,变长参数“灵活”

10.异常处理

try{

//要检测的代码

}catch{

case模型匹配

}finally{

//无论如何都会执行的代码

}

4.



ddd

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值