val student=("张三",'男',18,"北京师范大学")
(张三,男,18,北京师范大学)
val student1="张三"->'男'
(张三,男)
->
)当成一个元组,所以称为二元元组,只能有两个元素val student2="张三"->'男'->18->"北京师范大学"
(((张三,男),18),北京师范大学)
从 Tuple1 到 Tuple22
scala> student.
_1 _3 canEqual equals productArity productIterator toString
_2 _4 copy hashCode productElement productPrefix
canEqual
,equals
:比较两个元组值是否相等
val student=("张三",'男',18,"北京师范大学")
val student1=("张三",'男',18,"北京师范大学")
println(student.equals(student1)) // true
println(student.canEqual(student1)) // true
productArity
:获取当前元组元素个数
val student=("张三",'男',18,"北京师范大学")
val arity: Int = student.productArity
println(arity) // 4
productIterator
:元素遍历
val student=("张三",'男',18,"北京师范大学")
val iterator: Iterator[Any] = student.productIterator
while (iterator.hasNext) {
println(iterator.next())
}
toString
:转换成字符串格式输出
val student=("张三",'男',18,"北京师范大学")
println(student.toString())
(张三,男,18,北京师范大学)
copy
:拷贝元组
val student=("张三",'男',18,"北京师范大学")
val student1=student.copy()
println(student1)
(张三,男,18,北京师范大学)
hashCode
:获取 hashcode
val student=("张三",'男',18,"北京师范大学")
println(student.hashCode())
productElement
:索引取值(从0开始)
val student=("张三",'男',18,"北京师范大学")
val value: Any = student.productElement(1)
println(value) // 男
productPrefix
: 返回当前元组维度名称
val student=("张三",'男',18,"北京师范大学")
val prefix: String = student1.productPrefix
println(prefix) // Tuple4
似乎还有swap
函数用于元组元素交换;但是在我这个版本(2.12.10
)没有看到。
无法演示
val student=("张三",'男',18,"北京师范大学")
可以看到它有一些特殊的函数_N
,用于回去对应角标的元素_1 _3
_2 _4
获取姓名和学校
val student=("张三",'男',18,"北京师范大学")
println(s"姓名:${student._1},学校:${student._4}")
姓名:张三,学校:北京师范大学
元组角标是根据元组的维度生成的;比如五维元组,那么就有五个角标
scala> val student=("张三",'男',18,"北京师范大学","齐齐哈尔市")
scala> student.
_1 _3 _5 copy hashCode productElement productPrefix
_2 _4 canEqual equals productArity productIterator toString
元组角标最多只能有22个,这个要注意。
嵌套元组
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。