scala学习笔记

1.lazyhtml

惰性计算java

     惰性 求值 特别用于 函数式编程语言 中。在使用延迟求值的时候,表达式不在它被绑定到变量以后就当即求值,而是在该值被取用的时候求值 。 除能够获得性能的提高外,惰性计算的最重要的好处是它能够构造一个无限的数据类型。shell

    Scala中经过lazy关键字来定义惰性变量,惰性变量只能是不可变变量。例以下面,只有在调用惰性变量b的toString方法的时候,才会去实例化b这个变量。能够看到“Test”是先打印出来的。编程

class Book(name:String){maven

    println("new book"+name)编程语言

    override def toString() = "《"+name+"》"ide

}函数式编程

lazy val b = new Book("Java")函数

println("Test")工具

println(b.toString)

参考:Scala的函数式编程

2.“_”表明任意值。

3.tuple元组

在scala shell中,能够使用tab键进行提示。

建立元组的方式

var tuple1 = Tuple1("localhost", 8888);

var tuple1 = Tuple2("localhost", 8888);

.

var tuple1 = Tuple22("localhost", 8888);

var tuple1 = ("localhost", 8888);

var tuple1 = "localhost" -> 8888;

访问元组的方式

一个基于1的元素索引访问它,下标是从1开始的以下

tuple1_1:localhost

tuple1_2:8888

4. def max(x:Int, y:Int):Int = {……}

在scala中,scala编译器是没法推断函数的参数类型的,因此必须显示的注明函数的参数类型。

5.若是scala命令行没法回删,更改终端为Linux,在工具使用下面有博文http://my.oschina.net/cjun/blog/610402

6.scala命令行若是想换行,必须的是一个完整的语句再进行换行,不然会报错。

7.case object AAA {}至关于java的java bean,不用设置set和get方法,scala会自动帮咱们加上set和get方法。

8.在命令行使用scala的时候:scala xxx.jar,后面加类路径(scala xxx.jar com.bigdata.xxx)是没用的,因此须要在插件maven-assembly-plugin里面指定mainClass属性,来设置主类,若是不设置,就会提示java.lang.NullPointerException

9.传入函数的参数都是不可变的,是val类型的。参考:Scala基本语法和概念

相关文章
相关标签/搜索