- 浏览: 599557 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
元组是Scala提供的一种特殊的数据结构,或者说是一块语法糖,它允许多个不同类型的元素组合在一起被使用,如下所示:
这是一个四元组,由4个元素组成。Scala目前的版本支持最多22元组。一元组类是存在的,但没有对应的内建语法,所以单纯的用括号把一个值围起来没什么卵用。零元组也是存在的,就是Unit了。
元组有什么用?请设想,有一个函数,返回一个类Weather,然后有一天,老板让你多返回些信息,比如有没有雾霾,能不能外出,而你没有修改Weather的权限,怎么办?通常的办法是,再建个新类,把Weather和新信息封进去。在Scala里,不需要那么麻烦,交给元组就好了,把原来的Weather和新的信息用括号包起来,So easy!
返回来的元组要怎么使用?同样很简单,有两种方式,以最开始给的四元组为例,第一种方式,使用索引:
得到的输出会是这样的:
注意:元组的索引是从1开始的
第二种方式是类似于具名参数一样,给每个元素起个名字:
这样定义之后单独使用length、width、height都没有问题。
元组还有一种特定用法,当是二元组时,可以简单定义成:1 -> "one",等效于(1, "one")。
有了元组,将元素组合在一起将不再别扭和麻烦,代码将减少很多不必要的冗余,更精简易懂易用。
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")。
有了元组,将元素组合在一起将不再别扭和麻烦,代码将减少很多不必要的冗余,更精简易懂易用。
发表评论
文章已被作者锁定,不允许评论。
-
Scala 在Intellij中搭建Scala环境(jdk8,scala2.11.4)
2017-06-02 16:33 14441.打开Intellij然后点击File->Plugin ... -
Scala Partial Functions(偏函数)学习
2017-04-24 10:54 346如果你想定义一个函数,而让它只接受和处理其参数定义域范围内的子 ... -
Scala 样本类(case class)和模式匹配(match)学习
2017-04-20 18:20 833样本类(case clas)和模式 ... -
Scala 作业题练习纪录
2017-04-20 14:39 10041.用reduceLeft获取集合中最大元素 println ... -
Scala 闭包理解
2017-04-20 13:57 664闭包是一个函数,返回值依赖于声明在函数外部的一个或多个变量。 ... -
Scala 各种符号的含义(->,:::,::,<-,=>)
2017-04-20 09:50 652:::运算符 :::(三个冒号)表示List的连接操作,比如: ... -
Scala filter方法过滤集合元素(获取集合中的元素)
2017-04-19 14:44 2079Problem 你想要筛选出集合中的一些元素形成一个新的集合 ... -
Scala apply方法学习(类和对象都存在apply方法)
2017-04-19 10:18 733Scala比Java更面向对象的一个方面是Scala没有静态成 ... -
Scala Map(映射)学习
2017-04-18 09:20 431Map(映射)是一种可迭代的键值对(key/value)结构。 ... -
Scala 函数之map(返回集合)、reduce、flatMap、zip和foreach(无返回值)学习
2017-04-17 15:04 2231map和flatMap的区别 object collect ... -
Scala 符号 => 的用法(匿名函数(x:Int)=>x+1)
2017-04-17 10:58 7001. 表示函数的类型(Function Type) de ... -
Scala 下划线(_)的多种应用场景学习
2017-04-13 20:00 5881、作为“通配符”,类似Java中的*。如import sca ... -
Scala mkString方法(把一个集合转化为一个字符串)
2017-04-13 19:34 1208Problem 如果你想要把集合元素转化为字符串,可能还会添加 ... -
Scala yield案例 (for 循环和 yield 的例子)
2017-04-13 18:42 630下面是摘自 《Programming in Scala》关于 ... -
Scala 基本概念学习
2017-04-13 14:40 537Type Inference类型推断 当你声明的任何变量时,你 ...
相关推荐
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 + ...
- **元组(Tuple)**:一组有序的数据集合,每个位置的数据类型可以不同。 - **集合**:包括List、Set等多种类型,支持丰富的操作。 #### 四、总结 Scala不仅具备强大的编程能力,还具有简洁优雅的语法风格,是开发...
在Scala的数据结构中,元组(Tuple)用于存储不同类型的元素集合,元组的长度最多为22个元素。例如,可以创建一个包含两个元素的元组`val tuple = (1, "string")`。 集合是Scala数据结构的另一大重要部分,包括List...
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
它还引入了元组(Tuple)和模式匹配,提供了灵活的数据结构处理方式。 2. **函数式编程**:Scala支持高阶函数,函数可以作为一等公民,可以赋值给变量、作为参数传递和作为返回值。另外,函数可以匿名定义,即...
scala的数据结构有:数组Array、元组Tuple、容器Collection、序列Sequence、集合Set、映射Map、迭代器Iterator 2、数组 创建方式 (创建一个长度为10类型为Int的数组 1 val arr = new Array[Int](10) 默认初始化为0 2...
Scala是一种强大的多范式编程语言,它...掌握这些基础概念将为学习更高级的Scala特性,如模式匹配、Actor模型、Akka框架、Scalaz库等打下坚实的基础。在实际编程中,灵活运用这些知识可以编写出高效、可维护的代码。
总结,"Functional Programming Principles in Scala Assignments Week2"不仅提供了理论知识的学习,还通过实际的编程练习强化了对函数式编程的理解。通过深入探索高阶函数、闭包、柯里化和模式匹配等概念,学员将在...
- **元组(Tuple)**: 使用元组来组合多个值作为一个单一的实体。 - **集合(Set)和映射(Map)**: 掌握Scala中用于存储和检索元素的集合框架。 - **函数式风格**: 了解如何运用函数式编程的技巧来编写更简洁、高效的代码...
元组类型(Tuple Types)用于组合多个值,而注解类型(Annotated Types)可以附加元数据到类型上。复合类型(Compound Types)如`A with B`表示A和B的交集,而中缀类型(Infix Types)如`A op B`使得某些类型能够...
- **元组(Tuple)**:Scala中的元组可以存储不同类型的值,是一种非常灵活的数据结构。 - **集合(Set)**: - 不可变集合:通过代码示例展示了如何创建和使用不可变集合。 - 可变集合:通过代码示例展示了如何创建和...
#### Scala元组 元组(Tuple)是Scala中另一种常用的数据结构,用于将多个值组合在一起。例如,可以创建一个包含两个元素的元组:`(1, "one")`。 #### Scala包 Scala中的包类似于Java中的包,用于组织和命名空间...
课程还深入讲解了集合(Collections)的概念,包括列表(List)、映射(Map)、元组(Tuple)等,以及如何使用集合中的功能组合,例如map、foreach、filter、zip和fold等。此外,还介绍了模式匹配(Pattern Matching...
- **元组(Tuple)**:使用`()`表示的数据结构,最多可以包含22个元素,适用于返回多个值的函数。 **类(Class)** Scala的类定义使用`class`关键字,字段可以用`var`或`val`声明。类的构造器分为主构造器和辅助构造器...
数据结构在Scala中非常丰富,包括数组、列表(List)、元组(Tuple)、集(Set)、映射(Map)和迭代器(Iterator)。数组是最基本的数据结构,列表是有序的、不可变的序列,元组用于组合不同类型的数据,集是不包含重复元素的...
- 使用元组(Tuple)。 - 学习集合(Set)和映射(Map)。 - 阅读文件中的信息。 - 理解函数式编程风格。 #### 第二部分:进阶篇 - **第4章:类和对象** - 类、字段和方法的基本概念。 - 分号推断规则。 - ...
Scala中元组是固定数量的元素组合在一起,可以看作一个整体。 元组可以储存任意数据类型;数组只能存固定类型(除非父类可以存其他类型)。 元组是不可变的,最多可以存储22个元组,若多则建议使用集合。 可以使用元组...
在Scala中,元组允许我们组合不同类型的元素到一个单一的复合值中。元组通常用来表示固定大小的有序集合。 #### 示例代码分析 ```scala val tuple = (100, "spark", "java") println(tuple._3) // 输出 "java" ...
类型系统是Scala的一个核心部分,它包括基本类型(Value Types)如Int、Double、Boolean等,以及复杂类型如单例类型(Singleton Types)、类型投影(Type Projection)、类型设计ator(Type Designators)、参数化...