关闭

Scala学习小结(一)

标签: scala
203人阅读 评论(0) 收藏 举报
分类:

最近在搞Spark,需要学一下Scala,这门语言虽然也是运行在JVM上的,但与Java还是不同的。

1、函数式编程,在Scala中一切皆为对象,包括函数也是对象,因此可以将函数名直接作为形参传递。如果函数字面量只有一行语句,并只带一个参数,则连指代参数都不需要,直接写传入的函数名即可。例如,遍历打印一个列表中的元素。

val oneToFive = 1::2::3::4::5::Nil
oneToFive.foreach(println)

2、列表是不可变的,这类似于Java中的String,在使用List中的方法,如删除前两个元素,使用drop(2),此时会返回一个新的List,而元List是不变的。

3、访问List中的元素,Java使用[],而Scala使用(),这是因为Scala访问元素时实际上是调用了apply()方法,赋值时调用了update()方法。

4、Scala的方法中传递的参数都是val类型的,因此不可以在方法体中对参数进行重新赋值。

5、如果没有显式的返回语句,即没有写return,则scala则会默认返回方法中最后一次计算得到的值,如果要返回某一个值,则可以不写return,直接在方法最后一行写上要返回的变量或者常量即可。Scala中基本上不写return语句。

6、Scala中没有静态变量,使用单例对象来实现静态变量和方法,其实是对静态成员的一种封装。这里面就有了孤立对象,伴生对象,伴生类等概念。如果在某个类中,要写一个静态的字段或者是方法,则可以在与该类同一个文件中写一个同名的object,即为该类的伴生对象。在使用该类时,同样可以先new该类,然后直接用.即可访问到其静态方法(在伴生对象中的)。

关于孤立对象,伴生对象,有几篇博客要推荐:

学习Scala:从HelloWorld开始(张纪刚)

学习Scala:孤立对象的实现原理(张纪刚)

学习Scala:伴生对象的实现原理(张纪刚)


更多Scala知识点学习中...

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:57450次
    • 积分:935
    • 等级:
    • 排名:千里之外
    • 原创:31篇
    • 转载:31篇
    • 译文:0篇
    • 评论:45条
    文章分类
    最新评论