`

Scala 元组Tuple学习

 
阅读更多
元组是Scala提供的一种特殊的数据结构,或者说是一块语法糖,它允许多个不同类型的元素组合在一起被使用,如下所示:

val tup = (1, 3.14, "元组", true)


这是一个四元组,由4个元素组成。Scala目前的版本支持最多22元组。一元组类是存在的,但没有对应的内建语法,所以单纯的用括号把一个值围起来没什么卵用。零元组也是存在的,就是Unit了。

元组有什么用?请设想,有一个函数,返回一个类Weather,然后有一天,老板让你多返回些信息,比如有没有雾霾,能不能外出,而你没有修改Weather的权限,怎么办?通常的办法是,再建个新类,把Weather和新信息封进去。在Scala里,不需要那么麻烦,交给元组就好了,把原来的Weather和新的信息用括号包起来,So easy!

返回来的元组要怎么使用?同样很简单,有两种方式,以最开始给的四元组为例,第一种方式,使用索引:

val tup = (1, 3.14, "元组", true)
println(tup._1)
println(tup._4)


得到的输出会是这样的:

1
true
tup: (Int, Double, String, Boolean) = (1,3.14,元组,true)


注意:元组的索引是从1开始的

第二种方式是类似于具名参数一样,给每个元素起个名字:

val (length, width, height) = (1.3, 0.7, 1.8)


这样定义之后单独使用length、width、height都没有问题。

元组还有一种特定用法,当是二元组时,可以简单定义成:1 -> "one",等效于(1, "one")。

有了元组,将元素组合在一起将不再别扭和麻烦,代码将减少很多不必要的冗余,更精简易懂易用。

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    tuplez:Scala元组组成

    Scala和Scala.js中的元组组成。 // tupleN + scalar, scalar + tupleN, tupleN + tupleM, up to Tuple22 " app.tulz " %%% " tuplez-full " % " 0.3.4 " // or // tupleN + scalar, scalar + tupleN, tupleN + ...

    Scala学习笔记(全)

    - **元组(Tuple)**:一组有序的数据集合,每个位置的数据类型可以不同。 - **集合**:包括List、Set等多种类型,支持丰富的操作。 #### 四、总结 Scala不仅具备强大的编程能力,还具有简洁优雅的语法风格,是开发...

    大数据课程-Scala编程基础-4.Scala数据结构_lk_edit.ppt

    在Scala的数据结构中,元组(Tuple)用于存储不同类型的元素集合,元组的长度最多为22个元素。例如,可以创建一个包含两个元素的元组`val tuple = (1, "string")`。 集合是Scala数据结构的另一大重要部分,包括List...

    03Scala下划线的使用

    1.方法转换为函数 scala> def m(x:Int,y:Int) = x*y m: (x: Int, y: Int)Int scala> val f = m _ f: (Int, Int) => Int = 2.集合中的每一个元素 ...3.获取元组tuple中的元素 scala> val t = (“hadoo

    Programming In Scala 中文版及英文版

    它还引入了元组(Tuple)和模式匹配,提供了灵活的数据结构处理方式。 2. **函数式编程**:Scala支持高阶函数,函数可以作为一等公民,可以赋值给变量、作为参数传递和作为返回值。另外,函数可以匿名定义,即...

    scala中的数据结构

    scala的数据结构有:数组Array、元组Tuple、容器Collection、序列Sequence、集合Set、映射Map、迭代器Iterator 2、数组 创建方式 (创建一个长度为10类型为Int的数组 1 val arr = new Array[Int](10) 默认初始化为0 2...

    Scala第十章节1

    Scala是一种强大的多范式编程语言,它...掌握这些基础概念将为学习更高级的Scala特性,如模式匹配、Actor模型、Akka框架、Scalaz库等打下坚实的基础。在实际编程中,灵活运用这些知识可以编写出高效、可维护的代码。

    Functional Programming Principles in Scala Assignments Week2

    总结,"Functional Programming Principles in Scala Assignments Week2"不仅提供了理论知识的学习,还通过实际的编程练习强化了对函数式编程的理解。通过深入探索高阶函数、闭包、柯里化和模式匹配等概念,学员将在...

    programming in Scala_ch

    - **元组(Tuple)**: 使用元组来组合多个值作为一个单一的实体。 - **集合(Set)和映射(Map)**: 掌握Scala中用于存储和检索元素的集合框架。 - **函数式风格**: 了解如何运用函数式编程的技巧来编写更简洁、高效的代码...

    scala参考手册 必看

    元组类型(Tuple Types)用于组合多个值,而注解类型(Annotated Types)可以附加元数据到类型上。复合类型(Compound Types)如`A with B`表示A和B的交集,而中缀类型(Infix Types)如`A op B`使得某些类型能够...

    Scala 编程中文版-前13章

    - **元组(Tuple)**:Scala中的元组可以存储不同类型的值,是一种非常灵活的数据结构。 - **集合(Set)**: - 不可变集合:通过代码示例展示了如何创建和使用不可变集合。 - 可变集合:通过代码示例展示了如何创建和...

    Scala简单说明

    #### Scala元组 元组(Tuple)是Scala中另一种常用的数据结构,用于将多个值组合在一起。例如,可以创建一个包含两个元素的元组:`(1, "one")`。 #### Scala包 Scala中的包类似于Java中的包,用于组织和命名空间...

    twitter scala课堂

    课程还深入讲解了集合(Collections)的概念,包括列表(List)、映射(Map)、元组(Tuple)等,以及如何使用集合中的功能组合,例如map、foreach、filter、zip和fold等。此外,还介绍了模式匹配(Pattern Matching...

    Scala基础编程简介.ppt

    - **元组(Tuple)**:使用`()`表示的数据结构,最多可以包含22个元素,适用于返回多个值的函数。 **类(Class)** Scala的类定义使用`class`关键字,字段可以用`var`或`val`声明。类的构造器分为主构造器和辅助构造器...

    Scala快速从入门到神坑

    数据结构在Scala中非常丰富,包括数组、列表(List)、元组(Tuple)、集(Set)、映射(Map)和迭代器(Iterator)。数组是最基本的数据结构,列表是有序的、不可变的序列,元组用于组合不同类型的数据,集是不包含重复元素的...

    scala 中文教程下载

    - 使用元组(Tuple)。 - 学习集合(Set)和映射(Map)。 - 阅读文件中的信息。 - 理解函数式编程风格。 #### 第二部分:进阶篇 - **第4章:类和对象** - 类、字段和方法的基本概念。 - 分号推断规则。 - ...

    12元组

    Scala中元组是固定数量的元素组合在一起,可以看作一个整体。 元组可以储存任意数据类型;数组只能存固定类型(除非父类可以存其他类型)。 元组是不可变的,最多可以存储22个元组,若多则建议使用集合。 可以使用元组...

    Array、Map学习

    在Scala中,元组允许我们组合不同类型的元素到一个单一的复合值中。元组通常用来表示固定大小的有序集合。 #### 示例代码分析 ```scala val tuple = (100, "spark", "java") println(tuple._3) // 输出 "java" ...

    Scala语言参考 PDF

    类型系统是Scala的一个核心部分,它包括基本类型(Value Types)如Int、Double、Boolean等,以及复杂类型如单例类型(Singleton Types)、类型投影(Type Projection)、类型设计ator(Type Designators)、参数化...

Global site tag (gtag.js) - Google Analytics