用途

tuple用于传递复合类型的数据,介于基础类型和类之间,复杂的数据通过类(或结构)存储,稍简单的通过元组。

元组是使用非常便利的利器,有必要整理一篇博文。

定义

使用括号(), 括号内以逗号分割各种类型的数据, 形式如

(Int, String)
或 (String, Int, String......)

如:

userZhangsan = ("Zhangsan", "张三", "越秀区清水濠小学", 9, "三年级", true)

//读取元组中的元素,如:

userZhangsan[] //"Zhangsan"

userZhangsan[] //"张三"

userZhangsan[] //"越秀区清水濠小学"

userZhangsan[] //

userZhangsan[] //"三年级"

变量命名定义

还有另外一种方法也能以变量名的方式去访问元组中的数据,那就是在元组初始化的时候就给它一个变量名:

let userInfo = (name:"Zhangsan" ,isMale:true, age:)
userInfo.name //Zhangsan
userInfo.isMale //true
userInfo.age //

分解和变量转换

对于

let http404Error = (404, "Not Found")

你可以将一个元组的内容分解(decompose)成单独的常量或变量,然后你就可以正常使用它们了:

let (statusCode, statusMessage) = http404Error
print("The status code is \(statusCode)")
// 输出 "The status code is 404"
print("The status message is \(statusMessage)")
// 输出 "The status message is Not Found"

忽略部分值

如果你只需要一部分元组值,分解的时候可以把要忽略的部分用下划线(_)标记:

let (justTheStatusCode, _) = http404Error
print("The status code is \(justTheStatusCode)")
// 输出 "The status code is 404"

多值赋值

//一般我们的变量赋值这么干:
var a =
var b =
var c = 3
//现在可以用一行替代:
var (a, b, c) = (, , ) //变量交换就是这么简单:
(a, b) = (b, a)

可变元组和不可变元组

用var定义的元组就是可变元组,let定义的就是不可变元组。不管是可变还是不可变元组,元组在创建后就不能对其长度进行增加和删除之类的修改,只有可变元组能在创建之后修改元组中的数据:

var userInfo = (name:"Bannings" ,true, age:)    //定义可变元组
userInfo.name = "newName"
userInfo.name //newName let userInfo1 = (name:"Bannings" ,true, age:) //定义不可变元组
userInfo1.name = "newName" //报错,不可修改

作为函数返回值

func divmod(_ a: Int, _ b:Int) -> (Int, Int) {
return (a / b, a % b)
} divmod(, ) // (2, 1)
divmod(, ) // (2, 1)
divmod(, ) // (3, 0) //或者使用命名的版本: func divmod(_ a: Int, _ b:Int) -> (quotient: Int, remainder: Int) {
return (a / b, a % b)
} divmod(, ) // (quotient: 2, remainder:1)
divmod(, ) // (quotient: 2, remainder:1)
divmod(, ) // (quotient: 3, remainder:0)

Swift中的元组tuple的用法的更多相关文章

  1. Python中的元组(tuple)、列表(list)、字典(dict)

    -------------------------------更新中-------------------------------------- 元组(tuple): 元组常用小括号表示,即:(),元 ...

  2. C#中的元组(Tuple)和结构体(struct)

    在正常的函数调用中,一个函数只能返回一个类型的值,但在某些特殊情况下,我们可能需要一个方法返回多个类型的值,除了通过ref,out或者泛型集合可以实现这种需求外,今天,讲一下元组和结构体在这一方面的应 ...

  3. Swift中可选类型(Optional)的用法 以及? 和 ! 的区别 (转载博客,知识分享)

    本文转载自:代码手工艺人的博客,原文名称:Swift之 ? 和 ! Swift语言使用var定义变量,但和别的语言不同,Swift里不会自动给变量赋初始值,也就是说变量不会有默认值,所以要求使用变量之 ...

  4. swift中的尾随闭包的用法

    尾随闭包就是这个函数的最后一个参数是一个闭包,所以规定这个闭包既可以写在函数的参数括号里面,也可以直接放在最后面来使用,就像重新给这个函数定义了一次一样,有些怪,不过用的时候,可以把闭包写在外面的.这 ...

  5. swift中Range的使用书名

    在swift中Range有两种用法 1.把字符串转换成NSString来使用 //这里是把swift的字符换转换成了nsstring 使用 let str :NSString = text.strin ...

  6. swift中第三方网络请求库Alamofire的安装与使用

    swift中第三方网络请求库Alamofire的安装与使用 Alamofire是swift中一个比较流行的网络请求库:https://github.com/Alamofire/Alamofire.下面 ...

  7. Swift中元组(Tuples),结构体(Struct),枚举(Enums)之间的区别

    Swift有许多种存储数据方式,你可以用枚举(enums),元组(tuples),结构体(structs),类(classes),在这篇文章中我们将比较枚举.元组.结构体之间区别,首先从最简单的开始- ...

  8. python中元组tuple

    python中列表(list)和元组(tuple)有很多相似的地方,它们都是容器,由一系列的对象构成,都可以包含任意类型的元素,甚至是一个序列.   list和tuple的不同首先体现在写法上: li ...

  9. C#中的元组对象Tuple

    原文:C#中的元组对象Tuple 一.什么是元组 元组就是一些对象的集合,在我们编程时,比如一个人的信息,我们常常创建一个Person类去描述一个人,传统的做法如下: public class Per ...

随机推荐

  1. Java 字符编码(一)Unicode 字符编码

    Java 字符编码(一)Unicode 字符编码 Unicode(http://www.unicode.org/versions/#TUS_Latest_Version) 是一个编码方案,说白了希望给 ...

  2. vue生命周期-mounted和created的区别

    详情请查看:https://blog.csdn.net/xdnloveme/article/details/78035065 自己做个总结: beforeCreate 创建之前:已经完成了 初始化事件 ...

  3. 真机测试没有问题,but上线后安装在手机上crash。也有无法打包的情况。

    图片格式不对,把16位or p3图片改为8位sRGB图片  9.0以前不支持 解决步骤: a.找到导出项目的ipa文件修改后缀名.ipa为.zip后直接解压该文件: b.找到出问题的图片,直接把该图片 ...

  4. vue项目运行

    共分为以下六步: 1.安装node.js2.安装cnpm3.安装vue-cli脚手架构建工具4.用vue-cli构建项目5.安装项目所需的依赖6.运行项目 第1步:从node.js官网下载node.j ...

  5. 【java】:多线程面试题

    经常面试的时候,让写各种乱七八糟的多线程面试题,收集了很多,有些还是挺好玩的. 1.编写程序实现,子线程循环10次,接着主线程循环20次,接着再子线程循环10次,主线程循环20次,如此反复,循环50次 ...

  6. matplotlib中color可用的颜色

    http://stackoverflow.com/questions/22408237/named-colors-in-matplotlib 参考网址给出了matplotlib中color可用的颜色: ...

  7. scrum与第一次teamwork

    一.关于Scrum Scrum是什么?是迭代式增量软件开发过程,通常用于敏捷软件开发,Scrum是一种偏重于过程的敏捷开发的具体方式.Scrum的英文意思是橄榄球运动的一个专业术语,表示“争球”的动作 ...

  8. MongoDB的数据备份与恢复

    一:数据备份操作 步骤: 1.以管理员身份打开cmd,然后打开到mongdb的bin文件夹 2.输入命令 mongodump -h dbhost -d dbname -o dbdirectory -h ...

  9. python property对象

    一.从@porperty说起 Python内置的@property装饰器是负责把一个方法变成属性调用的 class Stu(object): def __init__(self,age): self. ...

  10. MVC概述

    学习MVC模式   一.MVC简介 MVC是Model-View-Controller的简称,即模型-视图-控制器.MVC是一种设计模式,它把应用程序分成三个核心模块:模型.视图.控制器,它们各自处理 ...