当前位置: 首页 > news >正文

Scala:解构声明(用例子通俗易懂)

一句话解释
解构声明就是“拆包裹”——把打包好的数据(比如元组、列表)拆开,把里面的值直接赋给变量。

——

举个栗子 🌰

假设你的代码里有这样一行:

scala复制代码

val (math, english, physics) = scores.unzip3

这里发生了什么?

  1. scores的结构

    scala复制代码

    // 假设scores是一个包含多个三元组的列表,比如:
    List( (80,64,78), (65,87,58), (44,71,77) )
    • 每个三元组代表一个学生的三门课成绩,比如(80,64,78)表示数学80,英语64,物理78
  2. unzip3的作用

    • 把“粘在一起”的三门课成绩拆分成三个独立的列表:

      scala复制代码

      ( 
        List(80, 65, 44),    // 所有数学成绩
        List(64, 87, 71),    // 所有英语成绩
        List(78, 58, 77)     // 所有物理成绩
      )
  3. 解构赋值

    scala复制代码

    val (math, english, physics) = 拆出来的三个列表
    • math = List(80, 65, 44)(所有数学成绩)
    • english = List(64, 87, 71)(所有英语成绩)
    • physics = List(78, 58, 77)(所有物理成绩)

相当于把三个包裹📦一次性拆开,把里面的东西分别放进三个盒子!

——

为什么要用解构?

  1. 代码更短:不用写三行分别取每个列表
  2. 更直观:变量名直接对应科目(math, english, physics)

——

其他常见场景(举个超简单例子)

scala复制代码

// 场景1:元组解构
val 学生信息 = ("张三", 18, 90)
val (姓名, 年龄, 分数) = 学生信息  // 直接拆开
println(姓名) // 输出"张三"

// 场景2:列表解构
val List(第一科, 第二科, _*) = List("数学", "英语", "物理", "化学")
println(第一科) // "数学"
println(第二科) // "英语"
// _* 表示剩下的科目不管了

——

注意事项 ⚠️

  • 形状要对得上:左边变量个数要和右边数据结构的元素个数一致

    scala复制代码

    // 错误示范:元组只有3个元素,左边却要拆成4个变量
    val (a,b,c,d) = (1,2,3) // 会报错!

这下应该明白啦!其实就是把打包的数据拆开用的快捷方式~ 😄

相关文章:

  • Leetcode2848:与车相交的点
  • 前端图片加载错误原因分析
  • 异常(5)
  • 大模型AI平台DeepSeek 眼中的SQL2API平台:QuickAPI、dbapi 和 Magic API 介绍与对比
  • UE4 组件 (对话组件)
  • 使用 dynamic-datasource-spring-boot-starter 实现多数据源动态切换
  • day21-API(算法,lambda,练习)
  • 工作学习笔记:HarmonyOS 核心术语速查表(v14 实战版)
  • mapset
  • spring-ai
  • 基于自监督三维语义表示学习的视觉语言导航
  • linux系统下openwebui重启并使用本地模型(vllm或其他)
  • 江科大51单片机笔记【10】蜂鸣器播放提示器音乐(下)
  • 【无标题】四色拓扑模型与宇宙历史重构的猜想框架
  • 第4章 Function 语意学1: Member的各种调用方式
  • nginx配置反向代理服务器,实现在https网站中请求http资源
  • Redis数据结构,渐进式遍历,数据库管理
  • Ubuntu20.04本地配置IsaacGym Preview 4的G1训练环境(二):训练与推理
  • [Java基础-线程篇]7_线程设计模式与总结
  • MCU-SDRAM-W9825G6KH的存储单元
  • 东莞网页制作免费网站制作/深圳最好seo
  • 做微信商城网站哪家好/百度导航下载2020新版语音
  • 重庆建站培训/aso推广公司
  • 青岛网站建设q479185700棒/torrentkitty磁力官网
  • 国外的智慧城市建设网站/外贸企业网站制作哪家好
  • 文旅开发公司/手机清理优化软件排名