通过下标_n取数据不多说了,下面是几个比较有意思的知识点
知识点
1、Tuple 和Function 和Producct一样最多只支持22个元素
比如 (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21) 这样是没问题的
但是(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,2122) 会编译不通过
2、Tuple 不能通过一个泛型参数来指定所有元素的类型,多个元素对应多个参数,试图通过一个类型参数来 限定元组中所有的元素的类型是错误的
允许这样使用 : var t=Tuple3[Int,Int,Int](1,2,3) 或者var t2= Tuple3(1,2,3) 或者var t3=(1,2,3)
不可以这样使用:Tuple3[Int](1,2,3) //试图通过一个类型参数来限定元组中所有的元素的类型是错误的
3、Tuple 不像List一样有map、flatMap 等方法直接操作元素,只能通过混入的ProductN(n代表1-22的数字) 的productIterator函数生成一个Iterator来操作数据,并且productIterator的返回类型是Iterator[Any] ,类型参数是Any ,所以操作数据的时候还要进行类型转换。比如_.asInstanceOf[Int] 或者模式匹配
例子
例子:val m = Map(2->(3,2) , 1->(2,1,3)) 怎么实现相同key的元素相加,得到 Map(2->5 , 1->6) 的结果? 其中value是个元组,元组中可以有任意多个(1-22个)Int类型的数字
解决方案: val m2=m.mapValues(_.productIterator.map(_.asInstanceOf[Int]).sum)
object mapplus2 extends App {
val m = Map(2->(3,2) , 1->(2,1,3))
val m2=m.mapValues(_.productIterator.map(_.asInstanceOf[Int]).sum)
println(m2)
}
运行结果:Map(2 -> 5, 1 -> 6)
相关推荐
**Scala编程语言基础知识点** 1. **类型系统**:Scala是强类型语言,拥有丰富的内置类型如Int、Double、String等,同时支持类、接口、枚举和特质。它还引入了元组(Tuple)和模式匹配,提供了灵活的数据结构处理...
本文将详细解析这些关键知识点,并通过具体的代码工程和题目来加深理解。 一、高阶函数(Higher-Order Functions) 高阶函数是一种可以接受一个或多个函数作为参数,或者返回一个函数的函数。在Scala中,高阶函数是...
- **元组(Tuple)**: 使用元组来组合多个值作为一个单一的实体。 - **集合(Set)和映射(Map)**: 掌握Scala中用于存储和检索元素的集合框架。 - **函数式风格**: 了解如何运用函数式编程的技巧来编写更简洁、高效的代码...
### Scala编程中文版-前13章知识点梳理 #### 一、Scala语言简介与特性 - **Scala**:一种多范式的编程语言,融合了面向对象编程和函数式编程的特点,设计初衷是为了改进Java语言的一些局限性。 - **创始人**:...
以下是从提供的文件内容中提取的Scala知识点,包括变量和常量的声明、函数的定义、匿名函数和柯里化、控制结构等。 首先,关于变量和常量的声明,Scala中的val关键字用于定义不可变变量(常量),而var关键字用于...
根据提供的信息,我们可以总结出以下关于“Scala中文教程下载”的相关知识点: ### 一、教程概述 该教程是一本详尽介绍Scala编程语言的书籍,共计15章,旨在帮助读者掌握Scala的基础语法及进阶内容。教程由Scala...
以下是对标题"Scala Reference"和描述中涉及的Scala语言的一些关键知识点的详细说明: 1. **词法语法**: - **标识符(Identifiers)**:在Scala中,标识符可以包含字母、数字和下划线,但不能以数字开头。它们...
根据给定的信息,我们可以从以下几个方面来探讨与Array、Map相关的Scala知识点: ### 1. 元组(Tuple) 在Scala中,元组允许我们组合不同类型的元素到一个单一的复合值中。元组通常用来表示固定大小的有序集合。 ...
下面将针对这本书的各个章节,逐一解析其中涉及的重要知识点。 ### 第一章:Scala简介 在这一章,读者会接触到Scala的基础知识,包括如何安装Scala环境、编写第一个"Hello, World!"程序,以及理解Scala的基本数据...
根据提供的文档信息,我们可以将其中的关键知识...这些知识点涵盖了Java编程的基础知识、Linux系统管理、数据库管理和分布式存储等多个方面,对于理解并实现一个基于大数据的人工智能量化投资平台具有重要的参考价值。