返回介绍

数学基础

统计学习

深度学习

工具

Scala

十二、元组

发布于 2023-07-17 23:38:22 字数 2363 浏览 0 评论 0 收藏 0

  1. 元组也是Scala 提供的不可变对象。与列表不同的是:元组可以容纳不同类型的元素。由于元组可以将不同类型的对象组合起来,因此它并不继承自 Traversable

    当你需要从方法中返回不同类型的多个对象时,元组非常有用。元组的一个常见应用场景是从方法返回多个值,而且这些值是不同类型的。

  2. 实例化一个新的元组非常简单,只需要将对象放在圆括号当中,并用逗号隔开即可。

    
    
    xxxxxxxxxx
    val tuple1 = (99, "Hello")

    一旦实例化好一个元组,则可以用英文句点.、下划线、和从1 开始的序号来访问每个元素:

    
    
    xxxxxxxxxx
    println(tuple1._1) // 99 println(tuple1._2) // "Hello"
    • 元组的访问序号从1 开始,而不是从0 开始。

    • Scala 可以自动推断元组的类型,如tuple1 的类型为Tuple2[Int,String]

      元组的实际类型不仅取决于元素的类型,还取决于元素的数量。

  3. 元组的访问与List 不同,其背后原因是:列表的.apply() 方法永远只会返回一种类型,而元组里的元素可以是不同类型的。

  4. 尽管理论上可以创建任意长度的元组,但是目前Scala 标准类库仅仅支持定义22个长度的元组Tuple22

  5. 可以将元组的元素分别赋值给不同的变量。

    
    
    xxxxxxxxxx
    val t1 = ("It is a string", 13) val (word, idx) = t1 // word 为字符串 "It is a string" ; idx 为整数 13

    如果去掉括号将得到不同的结果,每个变量都通过等号右侧的表达式求值来初始化:

    
    
    xxxxxxxxxx
    val word,idx = t1 // word 为元组 ("It is a string", 13) // idx 为元组 ("It is a string", 13)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文