📜  Scala-数据类型(1)

📅  最后修改于: 2023-12-03 15:34:51.040000             🧑  作者: Mango

Scala-数据类型

Scala 是一种多范式编程语言,支持面向对象编程、函数式编程以及并发编程。Scala 数据类型可以分为三类:基本数据类型、引用数据类型和集合类型。本文将介绍这些数据类型的特点和应用场景。

基本数据类型

Scala 的基本数据类型包括 Boolean、Byte、Short、Int、Long、Float、Double 和 Char。

Boolean 类型

Boolean 类型代表逻辑值,值为 true 或 false。Boolean 类型可以进行逻辑运算,例如与、或和非等运算。

val a: Boolean = true
val b: Boolean = false

val c: Boolean = a && b // false
val d: Boolean = a || b // true
数字类型

Scala 的数字类型包括 Byte、Short、Int、Long、Float 和 Double。这些类型支持算术运算、比较运算和位运算。

val a: Byte = 10
val b: Short = 100
val c: Int = 1000
val d: Long = 10000L
val e: Float = 1.23f
val f: Double = 3.1415926

val s1: Int = a + b // 110
val s2: Float = c / e // 813.0081
val s3: Double = d * f // 31415.926
Char 类型

Char 类型代表一个 Unicode 字符,值为单引号括起来的字符。Char 类型支持比较运算和转换成数字类型的操作。

val a: Char = 'a'
val b: Char = 'b'

val c: Boolean = a < b // true
val d: Int = a.toInt // 97
引用数据类型

Scala 支持所有 Java 的引用数据类型,例如 String、Array、Tuple、Option 和 Function 等等。

String 类型

String 类型代表一个字符串,值为双引号括起来的字符序列。String 类型支持字符串拼接、子字符串提取和正则表达式等操作。

val a: String = "Hello"
val b: String = "world"

val c: String = a + " " + b // "Hello world"
val d: String = a.substring(1, 3) // "el"
val e: Boolean = b.matches(".*rld") // true
Array 类型

Array 类型代表一个数组,可以包含任意类型的元素。Array 类型支持数组的创建、访问、修改和遍历等操作。

val a: Array[Int] = Array(1, 2, 3)
val b: Array[String] = Array("Hello", "world")

val c: Int = a(0) // 1
val d: String = b(1) // "world"

a(1) = 4
b(0) = "Hi"

for (elem <- b) {
  println(elem)
}
Tuple 类型

Tuple 类型代表一个元组,可以包含多个值,类型可以不同。Tuple 类型支持元组的创建、访问和解构等操作。

val a: (Int, String) = (1, "Hello")
val b: (Double, Boolean) = (3.14, true)

val c: Int = a._1 // 1
val d: Boolean = b._2 // true

val (x, y) = a
val (z, w) = b
Option 类型

Option 类型代表一个可能包含值的容器,值可以是任意类型或 null。Option 类型支持判断容器是否为空和获取容器的值等操作。

val a: Option[String] = Some("Hello")
val b: Option[Int] = None

val c: Boolean = a.isEmpty // false
val d: Int = b.getOrElse(0) // 0
Function 类型

Function 类型代表一个函数,可以接受任意数目的参数。Function 类型支持函数的定义、调用和返回值等操作。

val add: (Int, Int) => Int = (a, b) => a + b
val square: Int => Int = x => x * x

val a: Int = add(1, 2) // 3
val b: Int = square(3) // 9
集合类型

Scala 的集合类型包括可变集合和不可变集合。可变集合支持添加、删除和修改元素等操作,而不可变集合只支持元素的查询和遍历等操作。

可变集合

Scala 的可变集合包括 ArrayBuffer、ListBuffer、HashMap 和 HashSet 等类型。

import scala.collection.mutable.ArrayBuffer
import scala.collection.mutable.HashMap

val a: ArrayBuffer[Int] = ArrayBuffer(1, 2, 3)
val b: ListBuffer[String] = ListBuffer("Hello", "world")
val c: HashMap[String, Int] = HashMap("one" -> 1, "two" -> 2)
val d: HashSet[Int] = HashSet(1, 2, 3)

a += 4
b -= "world"
c.put("three", 3)
d.add(4)

for (elem <- a) {
  println(elem)
}
不可变集合

Scala 的不可变集合包括 List、Set、Map 和 Tuple 等类型。

val a: List[Int] = List(1, 2, 3)
val b: Set[String] = Set("Hello", "world")
val c: Map[String, Int] = Map("one" -> 1, "two" -> 2)
val d: (Int, String) = (1, "Hello")

val x: Int = a.head
val y: Boolean = b.contains("world")
val z: String = c.getOrElse("three", "default")

for (elem <- a) {
  println(elem)
}
总结

本文介绍了 Scala 的基本数据类型、引用数据类型和集合类型,包括它们的特点和应用场景。Scala 的类型系统十分强大,可以在编写代码时发现更多的错误,提高代码的可读性和可维护性。