📜  斯卡拉 |元组

📅  最后修改于: 2022-05-13 01:55:28.408000             🧑  作者: Mango

斯卡拉 |元组

元组是元素的集合。元组是异构数据结构,即它们可以存储不同数据类型的元素。元组是不可变的,不像 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 则会产生错误。但是我们可以使用嵌套元组来克服这个限制(注意一个元组可以包含其他元组)

元组上的操作
  1. 从元组访问元素:可以使用下划线语法访问元组元素,方法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
    
  2. 元组上的模式匹配:模式匹配是一种根据模式检查值的机制。一个成功的匹配也可以将一个值解构为它的组成部分。
    例子 :
    // 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。

  3. 对元组进行迭代要对元组进行迭代,使用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
    
  4. 将元组转换为字符串:将元组转换为字符串会将其所有元素连接成一个字符串。我们为此使用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)
    
  5. 交换元组的元素:交换元组的元素我们可以使用tuple.swap方法。
    例子 :
    // Scala program to swap tuple element
      
    // Creating object
    object gfg 
    {
        // Main method
        def main(args: Array[String]) 
        {
            val name = ("geeksforgeeks","gfg")
              
            // print swapped element
            println(name.swap)
        }
    }
    
    输出:
    (Geeksquize,geeksforgeeks)