Scala基础知识精要:变量、运算符与数据结构

需积分: 10 5 下载量 168 浏览量 更新于2024-09-09 收藏 57KB PPTX 举报
"这篇文档主要介绍了Scala编程语言的基础知识,包括变量声明、运算符、控制结构、函数、数据结构以及类和继承的概念。" 在Scala中,基础声明分为两种类型:`val` 和 `var`。`val` 用于声明不可变变量,一旦赋值后不能更改,例如 `val num = 0`。而 `var` 用于声明可变变量,其值可以在程序运行过程中改变,如 `var counter = 0`。 Scala支持多种常用类型,包括基本的数值类型(如 `Byte`, `Char`, `Short`, `Int`, `Long`, `Float`, `Double`, `Boolean`)。值得注意的是,这些类型在Scala中被视为类,这与Java等其他语言有所不同。 运算符在Scala中被视为方法,例如算术运算符(`+`, `-`, `*`, `/`, `%`)和关系运算符(`==`, `!=`, `<`, `>`, `<=`, `>=`)。这些运算符可以被重载,提供自定义的行为。 控制结构主要包括 `if...else` 和循环。`if...else` 可以作为表达式返回值,如 `if (x > 0) 1 else 0`。另外,Scala的 `for` 循环非常灵活,可以用于迭代序列、执行复合操作,甚至可以包含推导式,如 `for (i <- 1 to 10) yield i % 3` 会生成一个新的序列,包含1到10之间每个数除以3的余数。 函数定义在Scala中采用 `def` 关键字,例如 `def fac(n: Int): Int = {...}`,这里指定了函数名(fac)、参数(n)、返回类型(Int)和函数体。如果函数不是递归的,可以省略返回类型,编译器会自动推断。函数体前没有等号的表示返回类型为 `Unit`,这样的函数被称为过程。 常用的数据结构包括定长数组(Array)和变长数组(ArrayBuffer)。定长数组创建示例有 `val a = new Array[Int](10)` 或 `val a = Array[Int](1, 2, 3, 4, 5)`。变长数组允许动态添加或删除元素,如 `val b = ArrayBuffer[Int]()`,并可以通过 `+=`、`insert`、`remove` 等方法进行操作。 映射(Map)是Scala中的一种关联数据结构,可以将一个键(Key)关联到一个值(Value)。例如,`val scores = Map("Alice" -> 10, "Bob" -> 8)`。映射的访问、更新和删除操作包括 `scores("Bob")`、`scores("Bob") = 10`、`scores += ("Fred" -> 7)` 和 `scores -= "Fred"`。 元组(Tuple)允许存储不同类型的值,如 `(1, 2.5, "scala")`。元组的下标从1开始,可以通过 `_1`, `_2` 等访问其元素。例如,`var second = t._2`。 此外,Scala支持类(Class)和对象(Object)的概念,可以实现继承和多态。例如,`Class Person(val name: String, val age: Int)` 是一个简单的类定义,其中 `name` 和 `age` 是值参数,不可变。 通过这些基本概念,开发者可以开始构建复杂的Scala应用程序,利用其强大的功能和表达力。