Swift中的元组之美

Swift中的Tuple是什么:

元组是swift中可以容纳多个类型的复合类型。而非常简单的元组是可以容纳零个或多个类型的类型。 像一个元组可以容纳Int String bool或任何其他数据,即使它可以容纳其他复合类型和名称类型。

在苹果文档中:

元组类型是用括号括起来的零个或多个类型的逗号分隔列表。

了解元组是值类型而不是引用类型更重要。

句法 :

  var(元组名称)=(type1,type2) 
  var myTuple =(100,“ String”)//这里的元组具有2个值Int和String 

元组可以创建两种方式的隐式定义类型或显式定义类型:

明确定义:

  var tupleOne:(Int,String)=(12,“ Ekram”) 

在这里,我们明确定义了元组类型(Int,String)

明确定义的类型:

  var tupleTwo =(“ Ekram”,true) 

这里这个元组上的两个元素两个是字符串,另一个是布尔

使用名称类型创建:

我们也可以这样定义类型元素名称

  var tupleTwo =(name:“ Name”,isOky:true) 

访问元组:

我们可以通过两种方式访问​​元组元素

  1. 按名字

例:

  var tupleTwo =(name:“ Name”,isOky:true) 

现在我们可以像这样通过名称访问这两种类型

  var name = tupleTwo.name 
  var nameIsOky = tupleTwo.isOky 
  1. 按索引

我们可以像这样通过它们的索引访问元组元素

创建一个元组

  var tupleThree =(200,“成功”) 

按索引访问:

  var代码= tupleThree.0 
  var massage = tupleThree.1 

这里我们没有命名类型,所以我们可以通过index访问元组复合类型。

将多个值分配给多个值:

我们可以为多个元组分配多个值,并像这样分别访问它:

  var(名称,年龄,颜色,高度)=(“ Asagullah”,“ 28”,“黑色”,56) 

复制:

当我们将一个元组复制到另一个元组时,它实际上会为其值的类型创建唯一的cos副本

创建一个元组并将其复制到另一个元组

  var fullName =(名字:“ Asadullah”,中间名:“ Al”,姓氏:“ Galib”) 
  var userFullName = fullName //现在 

现在userFullName完全是另一个元组

我们可以像访问其他元组一样访问它。

  userFullName.firstName 
  userFullName.lastName 
  userFullName.middleName 

高级元组

元组内的元组:

  var anotherTuple:(Bool,(String,Int))=(ok:true,(name:“ Asagullah”,age:27)) 

在这里,我们创建一个名为anotherTuple的元组,它容纳两个类型Bool和(String,Int),这里是第二个类型,另外一个元组是string和Int

让我们用另一个复杂的例子:

  var anotherTwo:([[String:Int],Bool,(String,String),[Int])=([[“代码”:200],true,((“ asadullah”,“ al galib”),[123,678]) 

这是另一个两个元组包含

  1. 烤漆
  2. 布尔
  3. 一个元组
  4. 数组

因此,在这里说清楚,我们可以将任何类型存储在元组中都比灵活得多。

元组的使用:

元组可以使用大多数类型从函数返回多个值或按参数发送值。

  func backMeFullname(first:String,last:String)->(String,String){ 
  var fullName =(firstName:first,lastName:last) 
 返回fullName 
}
  var myFullName = backMeFullname(第一个:“ Ekramul”,最后一个:“ Hoque”) 
print(“我的名字:\(myFullName.0)”)

这里的backMeFullName函数返回一个元组(String,String)。

现在让我们创建一个typealias

  typealias myCustomType =(Int,String) 
  func takeaTuple()-> myCustomType { 
  var age:Int = 28 
var name:String =“ hasan”
var nameAndAge:myCustomType =(年龄,姓名)
返回nameAndAge
}
 让hisNameAge = takeaTuple() 
  print(hisNameAge.0)// 
print(hisNameAge.1)//

我们甚至可以像这样在Tuple中存储类,结构,枚举类型

  typealias myType =(MyClass,MyStruct,AnotherClass) 
 让classTyple:myType =(MyClass(),MyStruct(),AnotherClass()) 

最好不要使用复杂的元组

结论:

我认为swift最漂亮的功能之一就是Tuple,如果您喜欢这篇文章,请给我鼓掌并分享给其他学习者。