Scala(Scalable Language,可伸缩语言)由马丁·奥德斯基(Martin Odersky)于2004年发布。它运行在JVM上,融合了函数式编程和面向对象编程。
// Scala代码示例
// Case class:不可变数据结构
case class User(name: String, age: Int, email: Option[String])
// Trait:类似接口但可以包含实现
trait Greeting {
def greet(name: String): String = s"Hello, $name!"
}
object UserService extends Greeting {
def findAdultUsers(users: List[User]): List[User] = {
users.filter(_.age >= 18) // 使用模式匹配和函数式操作
}
def getEmailSummary(users: List[User]): Map[String, String] = {
users.flatMap { user =>
user.email.map(email => user.name -> email)
}.toMap
}
}
// 使用隐式参数(现在使用given/using)
object MathUtils {
given defaultPrecision: Int = 2
def formatNumber(n: Double)(using precision: Int): String = {
f"$n%.${precision}f"
}
}
// 使用Future进行异步编程
import scala.concurrent.Future
import scala.concurrent.ExecutionContext.Implicits.global
object AsyncExample {
def fetchUser(id: Int): Future[User] = Future {
// 模拟数据库查询
User(s"User$id", id, None)
}
def main(args: Array[String]): Unit = {
val users = Future.sequence((1 to 10).map(fetchUser))
users.foreach(println)
}
}
Scala的特点: