Tuple是元素的集合。元组是异构的数据结构,也就是说,它们可以存储不同数据类型的元素。元组是不可变的,不像scala中的数组是可变的。
存储整数, 字符串和布尔值的元组的示例。
val name = (15, "Chandan", true)
元组的类型由其所包含元素的编号以及这些元素的数据类型定义。
例如:
// this is tuple of type Tuple3[ Int, String, Boolean ]
val name = (15, "Chandan", true)
令N为元组中的元素数。 Scala目前仅限于一个元组中的22个元素, 即N应该是, 1 <= N <= 22, 该元组最多可包含22个元素, 如果元素数超过22, 则将产生错误。但是, 我们可以使用嵌套元组来克服此限制(请注意, 一个元组可以包含其他元组)
元组操作
从tuple访问元素:tuple元素可以使用下划线语法,方法tup_i用于访问元组的第i个元素。
范例:
// Scala program to access
// element using underscore method
// Creating object
object gfg
{
// Main method
def main(args : Array[String])
{
var name = ( 15 , "chandan" , true )
println(name. _ 1 ) // print 1st element
println(name. _ 2 ) // print 2st element
println(name. _ 3 ) // print 3st element
}
}
输出如下:
15
chandan
true
元组上的模式匹配:模式匹配是一种根据模式检查值的机制。成功的匹配还可以将值分解为其组成部分。
范例:
// Scala program of pattern matching on tuples
// Creating object
object gfg
{
// Main method
def main(args : Array[String])
{
var (a, b, c) = ( 15 , "chandan" , true )
println(a)
println(b)
println(c)
}
}
输出如下:
15
chandan
true
在此, 在上面的示例中, var(a, b, c)=(15, " chandan", true)表达式分配a = 15, b =" chandan", c = true。
遍历一个元组:要在元组上迭代,使用tuple. productiterator()方法。
范例:
// Scala program to iterate over tuples
// using productIterator method
// Creating object
object gfg
{
// Main method
def main(args : Array[String])
{
var name = ( 15 , "chandan" , true )
// The foreach method takes a function
// as parameter and applies it to
// every element in the collection
name.productIterator.foreach{i => println(i)}
}
}
输出如下:
15
chandan
true
将元组转换为字符串:将元组转换为字符串将其所有元素连接为字符串。为此我们使用tuple.toString()方法。
范例:
// Scala program to convert tuple element to String
// Creating object
object gfg
{
// Main method
def main(args : Array[String])
{
val name = ( 15 , "chandan" , true )
// print converted string
println(name.toString() )
}
}
输出如下:
(15, chandan, true)
交换元组的元素:交换元组元素我们可以使用tuple.swap方法。
范例:
// Scala program to swap tuple element
// Creating object
object gfg
{
// Main method
def main(args : Array[String])
{
val name = ( "lsbin" , "gfg" )
// print swapped element
println(name.swap)
}
}
输出如下:
(Geeksquize, lsbin)
更多后端开发相关内容请参考:lsbin - IT开发技术:https://www.lsbin.com/
查看以下更多Scala相关的内容: