Scala 作为一门功能强大的编程语言,提供了简洁而又灵活的语法,支持面向对象编程和函数式编程。了解其基本语法是开始使用 Scala 的第一步。以下是 Scala 的一些基础语法要点。


📖 目录

  1. Hello World 程序
  2. 变量与常量
  3. 数据类型
  4. 条件语句
  5. 循环语句
  6. 函数定义
  7. 面向对象特性
  8. 引用与对象
  9. 常用控制结构
  10. 参考资料

1. Hello World 程序

Scala 的基础语法非常简洁。一个简单的 Hello World 程序如下:

object HelloWorld {
  def main(args: Array[String]): Unit = {
    println("Hello, Scala!")
  }
}

  • object:Scala 中的 object 用于定义一个单例对象。
  • def:定义函数的关键字。
  • Unit:Scala 中的 Unit 相当于 Java 中的 void,表示没有返回值。

运行这段代码后,输出将是:

Hello, Scala!


2. 变量与常量

在 Scala 中,变量可以用 varval 来定义,区别在于 var 允许修改变量值,而 val 定义的是常量,值不可变。

定义变量:

var x = 10   // 可变变量
val y = 20   // 常量,值不可改变

示例:

var name = "Scala"
name = "Java"  // 可修改

val age = 30
// age = 35   // 会报错,常量不能修改


3. 数据类型

Scala 是强类型语言,但它具有强大的类型推断功能,通常无需显式声明数据类型。常见的数据类型包括:

  • 数值类型IntDoubleLongFloat
  • 字符类型Char
  • 布尔类型Boolean
  • 字符串类型String

示例:

val age: Int = 25
val height: Double = 5.9
val isScalaFun: Boolean = true
val name: String = "Scala"
val initial: Char = 'S'


4. 条件语句

Scala 提供了多种方式来处理条件语句,常见的包括 ifmatch

if-else 语句:

val x = 10
if (x > 5) {
  println("x 大于 5")
} else {
  println("x 小于或等于 5")
}

match 语句(类似 switch):

val day = 2
val dayName = day match {
  case 1 => "Monday"
  case 2 => "Tuesday"
  case 3 => "Wednesday"
  case _ => "Invalid day"
}
println(dayName)  // 输出: Tuesday


5. 循环语句

Scala 支持传统的 forwhile 循环,还提供了 for 推导式。

for 循环:

for (i <- 1 to 5) {
  println(i)
}

while 循环:

var i = 1
while (i <= 5) {
  println(i)
  i += 1
}

for 推导式:

val result = for (i <- 1 to 5) yield i * 2
println(result)  // 输出: Vector(2, 4, 6, 8, 10)


6. 函数定义

在 Scala 中,函数的定义非常灵活,支持默认参数、可变参数、以及递归等特性。

基本函数定义:

def add(a: Int, b: Int): Int = {
  a + b
}
println(add(3, 4))  // 输出: 7

带默认参数的函数:

def greet(name: String = "World"): String = {
  s"Hello, $name!"
}
println(greet())      // 输出: Hello, World!
println(greet("Scala")) // 输出: Hello, Scala!

递归函数:

def factorial(n: Int): Int = {
  if (n == 0) 1
  else n * factorial(n - 1)
}
println(factorial(5))  // 输出: 120


7. 面向对象特性

Scala 是一种完全的面向对象语言,所有事物(包括函数)都是对象。类和对象是 Scala 的基本组成部分。

类定义:

class Person(val name: String, val age: Int) {
  def greet(): Unit = {
    println(s"Hello, my name is $name and I am $age years old.")
  }
}

val p = new Person("Alice", 25)
p.greet()  // 输出: Hello, my name is Alice and I am 25 years old.

伴生对象:

object Person {
  def apply(name: String, age: Int): Person = new Person(name, age)
}

val p = Person("Bob", 30)  // 通过伴生对象的 apply 方法创建实例


8. 引用与对象

Scala 支持引用类型(如类实例)以及原始类型(如 IntBoolean)的操作。

对象创建:

val person1 = new Person("Charlie", 28)

不可变性:

Scala 鼓励使用不可变对象。你可以使用 val 来确保对象不可改变。


9. 常用控制结构

try-catch 语句:

Scala 的异常处理机制与 Java 相似:

try {
  val result = 10 / 0
} catch {
  case e: ArithmeticException => println("Error: " + e.getMessage)
}


10. 参考资料


通过掌握这些基本的语法要点,你可以开始编写简单的 Scala 程序,逐步了解其面向对象和函数式编程的优势与应用。Scala 强大的功能、简洁的语法以及与 Java 的兼容性,使其成为开发复杂系统和应用程序的理想语言。