4. 修改库存数量
library.get(updateId) match {
case Some((name, author, stock)) =>
library(updateId) = (name, author, stock + 2)
println(s"修改后: ${library(updateId)}")
case None =>
println(s"未找到要修改的书籍")
}
解析:
- 先检查书籍是否存在
- 使用
library(key) = newValue语法更新值 - 元组是不可变的,所以创建新的元组替换原值
- 体现了可变Map的特性:可以修改已存在的键值对
5. 删除书籍
library -= removeId
解析:
-=操作符 - 从Map中移除指定键的元素- 语法:
map -= key - 如果键不存在,操作不会产生错误
6. 遍历打印
library.foreach { case (id, (name, author, stock)) =>
println(s"编号: $id, 书名: $name, 作者: $author, 库存: $stock")
}
解析:
foreach- 遍历集合的每个元素- 使用模式匹配解构键值对
case (id, (name, author, stock))- 分别提取键和元组的各个部分