Scala初识
Posted 大数据DL
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scala初识相关的知识,希望对你有一定的参考价值。
一:Object、Trait、Class
二:scala类型
三:基本操作
一:Object、Trait、Class
Scala三个类:Object、Trait、Class 区别与联系
trait 是介于抽象类和接口中间,多继承;trait 里面可以有方法体,Java的接口就不能有;trait又和抽象类不一样,它可以多继承,并且是无参数构造器;所以是介于两者之间的,它的出现就是为了多继承,并且能写实体的方法的类。
class和object的区别与联系:class就是Java的class类,object就是Java的 static关键字;如果class名字和object的名字相同,那么class是object伴生类
object是class的伴生对象,两个可以相互访问对方的private变量和方法
创建了一个ojbect 类,类似于Java的static 关键字
里面你可以写main方法 ,程序入口 ,也可继承APP默认执行里面代码
声明了两个字段,var 声明的是变量,val声明的是常量
常量就是不可更改例如
二:scala类型
scala类型图:
scala的超类是any,类似于 Java里面的 object,引用类型的空是null。各个空值讲解如下图:
基本类型讲解如图:
option操作类型:这个类型出现是为了防止引用类型出现空指针异常
例如:你通过下标去访问array超出数据界限时候Java会返回nullexception,scala会返回none。none是option一个值类似于boolean有两个值一样。
代码如下
val myMap: Map[String, String] = Map("key1" -> "value")
val value1: Option[String] = myMap.get("key1")
val value2: Option[String] = myMap.get("key2")
println(value1) // Some("value1")
println(value2) // None
例如上图讲解map的访问和使用
一般我们申请的map都是不可变对象,还有list也是不可变对象,如果想用可变对象。如下图
三:基本操作
1.scala的if else和java一样
2.Java switch在scala中是match如图:
3.类里面方法里面声明变量,一定要加修饰符var ,val;不加会报错:
4.scala里面的循环和Java的一样,如图
for循环里面有点区别,for条件后面可以跟一个yield返回循环出来的结果值
for(i <- 0 to 100 if (i % 2) == 1 ) 这里面的if是卫句起到过滤作用
以上是关于Scala初识的主要内容,如果未能解决你的问题,请参考以下文章