Scala 简介学习笔记
什么是Scala?
Scala 是一种多范式编程语言,结合了面向对象编程和函数式编程的特性。它运行在 Java 虚拟机(JVM)上,因此可以与 Java 代码无缝互操作。Scala 的语法简洁而优雅,具有高度可读性和可维护性。
Scala 基础
数据类型
Scala 支持和 Java 类似的基本数据类型,包括整数、浮点数、布尔值和字符。此外,Scala 还支持引用类型,如数组和字符串。
函数
函数是 Scala 中的一等公民,它们可以像变量一样被传递和操作。Scala 的函数也支持高阶函数和闭包,这些特性使得 Scala 函数式编程方式更加方便和灵活。
下面是一个计算斐波那契数列的示例函数:
scalaCopy Codedef fib(n: Int): Int = {
if (n <= 1) n
else fib(n-1) + fib(n-2)
}
面向对象编程
Scala 是一种面向对象编程语言,它支持类、对象和继承等特性。Scala 的类可以拥有构造函数、方法和属性。同时,Scala 还支持混入(mixin)特质(trait),这使得代码可以更加模块化和复用。
下面是一个使用 Scala 类的示例代码:
scalaCopy Codeclass Person(name: String, age: Int) {
def sayHello(): Unit = {
println(s"Hello, my name is $name and I am $age years old.")
}
}
val person = new Person("Alice", 25)
person.sayHello()
模式匹配
在 Scala 中,模式匹配是一种强大的编程工具,它可以以一种易于阅读和编写的方式对数据进行分类和操作。Scala 的模式匹配可以用于匹配任何类型的值,包括整数、字符串、列表、元组等。
下面是一个使用模式匹配的示例:
scalaCopy Codeval x: Any = "hello"
x match {
case i: Int => println("An integer: " + i)
case s: String => println("A string: " + s)
case l: List[_] => println("A list: " + l)
case _ => println("Unknown type")
}
示例代码
下面是一个使用Scala实现的简单的计算器程序:
scalaCopy Codeimport scala.io.StdIn.readLine
object Calculator {
def main(args: Array[String]): Unit = {
val num1 = readLine("Enter a number: ").toDouble
val op = readLine("Enter an operator (+, -, *, /): ")
val num2 = readLine("Enter another number: ").toDouble
val result = op match {
case "+" => num1 + num2
case "-" => num1 - num2
case "*" => num1 * num2
case "/" => num1 / num2
case _ => throw new IllegalArgumentException("Invalid operator")
}
println(s"$num1 $op $num2 = $result")
}
}
运行该程序,用户可以通过命令行输入两个数字和运算符,然后程序会计算结果并输出。