You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用模式匹配提取列表中的元组及单个元素

解决方案:同时提取完整元组与拆分元素

当然可以实现!在Scala的模式匹配里,你可以借助@符号,同时绑定完整元组和拆分后的各个元素,这样既能用拆分后的day/month/year做字符串拼接,也能直接引用整个元组对象。

修改后的代码示例

val lst = List((12, "aug", 2016), (13, "jun", 2016))
lst.foreach { 
  case fullTuple @ (day, month, year) => 
    println(s"Tpl is $fullTuple,拆分后: ($day, $month, $year)") 
}

运行结果

Tpl is (12,aug,2016),拆分后: (12, aug, 2016)
Tpl is (13,jun,2016),拆分后: (13, jun, 2016)

原理说明

这里的@符号是Scala模式匹配里的变量绑定语法:

  • fullTuple @ (day, month, year)表示:当匹配到一个三元组时,既把整个元组赋值给fullTuple变量,同时把元组的三个元素分别赋值给day、month、year。
  • 这样你就可以根据需求,灵活使用完整元组或者拆分后的单个元素了。

如果你只是想在原有打印逻辑的基础上保留完整元组的引用,直接把你的代码修改成下面这样就行:

lst.foreach { case fullTuple @ (day, month, year) => 
  println(s"Tpl is ($day, $month, $year),完整元组是: $fullTuple") 
}

内容的提问来源于stack exchange,提问作者Raj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:59:28