Scala语言数据类型与集合等基本操作

本文介绍了Scala编程的基础知识,包括基本数据类型如Byte、Short、Int、Long、Float、Double,以及变量声明、函数和方法的使用。详细讲解了条件表达式、循环结构如for和while,还有Lazy值的概念。此外,还涉及异常处理机制,如try...catch...finally。最后,文章提到了Scala中的数组、映射和元组的使用方法,展示了其灵活性和强大的集合操作能力。
摘要由CSDN通过智能技术生成

1、常见数据类型

  • Scala的常用数据类型注意:在Scala中,任何数据都是对象。例如:
    在这里插入图片描述

  • 数值类型: Byte,Short,Int,Long,Float,Double

    • Byte: 8位有符号数字,从-128 到 127
    • Short: 16位有符号数据,从-32768 到 32767
    • Int: 32位有符号数据
    • Long: 64位有符号数据
      例如:
      val a:Byte = 10
      a+10
      得到:res9: Int = 20
      这里的res9是新生成变量的名字
      val b:Short = 20
      a+b
      注意在Scala中,定义变量可以不指定类型,因为Scala会进行类型的自动推导。
  • 字符类型和字符串类型:Char和String
    对于字符串,在Scala中可以进行插值操作。
    在这里插入图片描述
    注意前面有个s;相当于执行:"My Name is " + s1

  • Unit类型:相当于Java中的void类型
    在这里插入图片描述

  • Nothing类型:一般表示在执行过程中,产生了Exception
    例如,我们定义一个函数如下:
    在这里插入图片描述

2、Scala变量的申明和使用

  • 使用val和var申明变量
    例如:scala> val answer = 8 * 3 + 2 可以在后续表达式中使用这些名称
  • val:定义的值实际是一个常量
  • var:要申明其值可变的变量
  • 注意: 可以不用显式指定变量的类型,Scala会进行自动的类型推到

3、Scala的函数和方法的使用

  • 可以使用Scala的预定义函数
    例如:求两个值的最大值
    在这里插入图片描述

    • 也可以使用def关键字自定义函数
      语法:
      在这里插入图片描述
      示例:
      在这里插入图片描述

4、Scala的条件表达式

  • Scala的if/else语法结构和Java或C++一样。
  • 不过,在Scala中,if/else是表达式,有值,这个值就是跟在if或else之后的表达式的值。

5、Scala的循环

Scala拥有与Java和C++相同的while和do循环
Scala中,可以使用for和foreach进行迭代

  • 使用for循环案例:
    在这里插入图片描述注意:
    (1) <- 表示Scala中的generator,即:提取符
    (2)第三种写法是第二种写法的简写
  • 在for循环中,还可以使用yield关键字来产生一个新的集合
    在这里插入图片描述
    在上面的案例中,我们将list集合中的每个元素转换成了大写,并且使用yield关键字生成了一个新的集合。
  • 使用while循环:注意使用小括号,不是中括号
    在这里插入图片描述
  • 使用do … while循环
    在这里插入图片描述
  • 使用foreach进行迭代
    在这里插入图片描述
    注意: 在上面的例子中,foreach接收了另一个函数(println)作为值6、Scala函数的参数
  • Scala中,有两种函数参数的求值策略
    • Call By Value:对函数实参求值,且仅求一次
    • Call By Name:函数实参每次在函数体内被用到时都会求值
      在这里插入图片描述
    • 我们来分析一下,上面两个调用执行的过程:
      在这里插入图片描述
  • 一份复杂一点的例子:
    在这里插入图片描述

    • Scala中的函数参数
      • 默认参数
      • 代名参数
      • 可变参数
        在这里插入图片描述

6、Scala的Lazy值(懒值)

当val被申明为lazy时,它的初始化将被推迟,直到我们首次对它取值。
在这里插入图片描述
一个更为复杂一点的例子:读取文件:
在这里插入图片描述

7、异常的处理

Scala异常的工作机制和Java或者C++一样。直接使用throw关键字抛出异常。
在这里插入图片描述
使用try…catch…finally来捕获和处理异常:
在这里插入图片描述

8、Scala中的数组

  • Scala数组的类型:
    • 定长数组:使用关键字Array
      在这里插入图片描述
    • 变长数组:使用关键字ArrayBuffer
      在这里插入图片描述
    • 遍历数组
      在这里插入图片描述
    • Scala数组的常用操作
      在这里插入图片描述
    • Scala的多维数组
      和Java一样,多维数组是通过数组的数组来实现的。也可以创建不规则的数组,每一行的长度各不相同。在这里插入图片描述

9、映射

映射就是Map集合,由一个(key,value)组成。-> 操作符用来创建
例如:
val scores = Map(“Alice” -> 10,”Bob” -> 3,”Cindy” -> 8)
映射的类型分为:不可变Map可变Map
在这里插入图片描述

  • 映射的操作
    • 获取映射中的值
      在这里插入图片描述
    • 更新映射中的值(必须是可变Map
      在这里插入图片描述
    • 迭代映射
      在这里插入图片描述

10、元组(Tuple)

元组是不同类型的值的聚集。
例如:val t = (1, 3.14, “Fred”) // 类型为Tuple3[Int, Double, java.lang.String]
这里:Tuple是类型,3是表示元组中有三个元素。
元组的访问和遍历:
在这里插入图片描述
注意要遍历Tuple中的元素,需要首先生成对应的迭代器。不能直接使用for或者foreach

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

若兰幽竹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值