Scala初识

本文深入探讨Scala中的核心概念,包括Object、Trait、Class的区别与联系,以及trait如何实现多继承并支持实体方法。同时介绍了Scala的基本类型体系,解释了如何通过Option类型避免空指针异常,并展示了Scala的基本操作语法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一: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是卫句起到过滤作用


更多关于hadoop,spark和机器学习文章请关注本文公众号:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值