大发时时彩玩法—大发快3彩票平台

Scala入门到精通——第十四节 Case Class与模式匹配(一)

时间:2020-02-28 00:59:23 出处:大发时时彩玩法—大发快3彩票平台

上述scala代码展示了如何使用scala中的模式匹配,它的实现法律法律依据是通过match关键字与 case X=>的法律法律依据实现的,其中case _表示除了 case 10,case 3000,case 3000的其余匹配,这类于java中的default。但scala语言中提供了更为灵活的匹配法律法律依据,如:

在进行模式匹配的后来,某些后来时要确保所有的如何让情况表都被列出,此时常常会将case class的超类定义为sealed(橡胶密封的) case class,如:

打上去公众微信号,可可不里都后能 了解更多最新Spark、Scala相关技术资讯

Case Class一般被翻译成样例类,它是这一 特殊的类,可不都后能 被优化以用于模式匹配,下面的代码定义了一一两个 样例类:

下面给出case class Student字节码文件内容,以验证某些人上述所讲的内容:

scala处置了java语言中发生的你这一 问题报告 ,scala处置你这一 问题报告 的利器只是模式匹配,里边的java代码可可不里都后能 利用scala语言的模式匹配来处置,代码如下:

具体参见此人 博客文章:SparkSQL(Spark-1.4.0)实战系列(三)——SparkSQL应用案例 http://blog.csdn.net/lovehuangjiaju/article/details/46946533

编译器给出的提示可可不里都后能 通过下列语录进行消除,

3 sealed case class

2 多个参数的case class

4 case class在实用应用中的其它用途

某个类一旦被定义为case class,则编译器会自动生成该类的伴生对象,伴生对象中包括了apply法律法律依据及unapply法律法律依据,apply法律法律依据使得某些人可可不里都后能 不时要new关键字就可可不里都后能 创建对象,而unapply法律法律依据,则使得可可不里都后能 方便地应用在模式匹配当中,另外编译器还自动地帮某些人实现对应的toString、equals、copy等法律法律依据。在实际中,case class除了在模式匹配时能发挥其强大的威力之外,在进行其它应用时,也显示出了其强大的功能,下面给出case class在SparkSQL中的应用,旨在说明case class在实际应用中的重要地位。

1 case class常用法律法律依据

前面某些人提到,定义case class便会自动生成对应的toString,hashCode,equals,copy等法律法律依据,

case语言中还可可不里都后能 加相应的表达式,这类:

当一一两个 类被声名为case class的后来,scala会帮助某些人做下面几件事情:

1 构造器中的参数如何让不被声明为var语录,它默认语录是val类型的,但一般不推荐将构造器中的参数声明为var

2 自动创建伴生对象,共同在里边给某些人实现子apply法律法律依据,使得某些人在使用的后来可可不里都后能 不直接显示地new对象

3 伴生对象中同样会帮某些人实现unapply法律法律依据,从而可可不里都后能 将case class应用于模式匹配,关于unapply法律法律依据某些人在里边的“提取器”那一节会重点讲解

4 实现此人 的toString、hashCode、copy、equals法律法律依据

除此之此,case class与其它普通的scala类可可不里都后能 了区别

在java语言中发生switch语录,这类:

热门

热门标签