Scala 图书馆管理系统1.0

20 阅读1分钟

Scala 图书馆管理系统代码解析

2025-11-2844阅读2分钟

专栏: 

Scala

实训一:可变 Map 实现图书馆管理系统

代码结构解析

import scala.collection.mutable

object LibraryMapSystem {
  def main(args: Array[String]): Unit = {
    // 代码实现...
  }
}

解析:

  • import scala.collection.mutable - 导入可变集合包
  • object LibraryMapSystem - 创建单例对象
  • main 方法 - 程序入口点

1. 创建可变 Map

val library = mutable.Map[String, (String, String, Int)](
  "B001" -> ("Scala 编程", "Martin Odersky", 5),
  "B002" -> ("Java 核心技术", "Cay Horstmann", 3),
  "B003" -> ("Python 学习手册", "Mark Lutz", 7)
)

解析:

  • mutable.Map[String, (String, String, Int)] - 创建键为String,值为三元组的可变Map
  • 键:书籍编号(如 "B001")
  • 值:元组包含(书籍名称,作者,库存数量)
  • 使用 -> 操作符创建键值对

2. 添加新书籍

library += ("B004" -> ("数据结构与算法", "严蔚敏", 4))
library += ("B005" -> ("设计模式", "Erich Gamma", 6))

解析:

  • += 操作符 - 向可变Map添加新元素
  • 语法:map += (key -> value)
  • 如果键已存在,会更新对应的值

3. 查询书籍信息

val bookId = "B002"
val bookInfo = library.get(bookId)
bookInfo match {
  case Some((name, author, stock)) => 
    println(s"找到书籍: $name, 作者: $author, 库存: $stock")
  case None => 
    println(s"未找到编号为 $bookId 的书籍")
}

解析:

  • library.get(bookId) - 安全获取值,返回 Option 类型
  • Option 类型:Some(value) 或 None
  • 使用模式匹配处理两种可能情况
  • 避免直接使用 library(bookId) 可能抛出异常