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)
访问元组:
我们可以通过两种方式访问元组元素
- 按名字
例:
var tupleTwo =(name:“ Name”,isOky:true)
现在我们可以像这样通过名称访问这两种类型
var name = tupleTwo.name
var nameIsOky = tupleTwo.isOky
- 按索引
我们可以像这样通过它们的索引访问元组元素
创建一个元组
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])
这是另一个两个元组包含
- 烤漆
- 布尔
- 一个元组
- 数组
因此,在这里说清楚,我们可以将任何类型存储在元组中都比灵活得多。
元组的使用:
元组可以使用大多数类型从函数返回多个值或按参数发送值。
例
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,如果您喜欢这篇文章,请给我鼓掌并分享给其他学习者。