定义

元组是由若干个类型的数据组成,组成元组的数据叫做元素,每个元素的类型都可以是任意的。

用法一

let tuples1 = ("Hello", "World", 2017)

//元组跟数组一样,其元素的角标是从0开始  可以用 tuple1.0  tuple1.1 tuple1.2进行取值

print("get first value \(tuples1.0), get the second value \(tuples1.1), get the third value \(tuples1.2)")

用法二

let tuples2 = (first:"Hello", second:"World", third:2017)

//此中用法的元组的取值可以用 tuple2.first tuple2.second tuple3.third

print("get the first value \(tuples2.first), get the second value \(tuples2.second), get the third value \(tuples2.third)")

用法三

//变量接收数值法

let (x, y, z) = ("Hello", "World", 2017);

print("get x is \(x) get y is \(y) get z is \(z)")

//用_取出某些元素的值忽略_对应的值

let (a, _, b) = ("Hello", "World", 2017);

print("get x is \(a) get z is \(b)")

元组值的修改

//此时获得的元组为不可变元组 不能对其元素进行修改

let tuples2 = (first:"Hello", second:"World", third:2017)

//此中用法的元组的取值可以用 tuple2.first tuple2.second tuple3.third

print("get the first value \(tuples2.first), get the second value \(tuples2.second), get the third value \(tuples2.third)")

//此时会报错

//tuples2.first = "test";  应将tuple2前的let 改成var可将元组变成可变元组

//此时创建的元组为可变元组,其元素可以进行修改

var tuples2 = (first:"Hello", second:"World", third:2017)

//此中用法的元组的取值可以用 tuple2.first tuple2.second tuple3.third

var print("get the first value \(tuples2.first), get the second value \(tuples2.second), get the third value \(tuples2.third)")

tuples2.first = "test";

print("get the first value \(tuples2.first), get the second value \(tuples2.second), get the third value \(tuples2.third)")

元组的高级应用

定义一个可以交换一个数组中两个元素的函数

func swap<T>(_ nums: inout [T], _ p: Int, _ q: Int) {

(nums[p], nums[q]) = (nums[q], nums[p])

}

var array = ["Hello", "World", 2017] as [Any]

for value in array {

print(value);

}

swap(&array, 0, 2)

for value in array {

print(value);

}

Swift学习之元组(Tuple)的更多相关文章

  1. Swift中的元组tuple的用法

    用途 tuple用于传递复合类型的数据,介于基础类型和类之间,复杂的数据通过类(或结构)存储,稍简单的通过元组. 元组是使用非常便利的利器,有必要整理一篇博文. 定义 使用括号(), 括号内以逗号分割 ...

  2. swift学习之元组

    元组在oc中是没有的.在swift中是新加的,学oc数组概念时还在想既然能够存储同样类型的元素,那不同类型的元素有没有东西存储呢,答案非常悲伤,oc没有元组这个概念.只是swift中加入了这个东西,也 ...

  3. Python学习笔记(4)--数据结构之元组tuple

    元组(tuple) 定义:tuple和list十分相似,但是tuple是不可变的,即不能修改tuple 初始化:(), ('a', ) , ('a', 'b')   //当只有一个元素时,需加上逗号, ...

  4. 记录:swift学习笔记1-2

    swift还在不断的更新做细微的调整,都说早起的鸟儿有虫吃,那么我们早点出发吧,趁着国内绝大多数的coder们还没有开始大范围普遍应用. 网上有些大神说:swift很简单!我不同意这个观点,假如你用h ...

  5. Swift学习笔记八

    函数 Swift的函数语法非常独特,也提供了很高的灵活性和可读性.它可以充分表达从简单的无参数C风格函数到复杂的拥有局部变量和外部变量的OC风格的方法.参数可以有默认值,方便函数的调用.Swift中的 ...

  6. Swift学习笔记四

    前面三篇笔记通过一些示例展示了Swift的一些特性,粗略地介绍了它的语法和特色,从这一篇笔记开始,将正式系统地介绍Swift的语法和特性了. Swift是一门为iOS和OSX开发准备的全新语言,但是它 ...

  7. Swift 学习- 07 -- 函数

    // 函数 // 函数是一段完成特定任务的独立代码片段, 你可以通过给函数命名来标识某个函数的功能, 这个名字可以被用来在需要的时候'调用'这个函数来完成它的任务 // swift 统一的函数语法非常 ...

  8. Swift 学习- 06 -- 控制流

    // 控制流 // swift 提供了多种控制流结构,包括可以多次执行的 while 循环,基于特定条件选择执行不同分支的 if, guard 和 switch 语句,还有控制流程跳转到其它代码位置的 ...

  9. Swift 学习- 02 -- 基础部分2

    class NamedShape{ var numberOfSides: Int = 0 var name: String init(name: String) { self.name = name ...

随机推荐

  1. C++汉诺塔递归实现

    程序背景: 汉诺塔(Tower of Hanoi)又称河内塔,问题是源于印度一个古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘.大梵天命 ...

  2. [0] Devexpress 控件参数集合

    gridview控件/统计功能 比如对“数量”列进行统计,只要在GridControl的设计器中设置SummaryItem:   SummaryItem.DisplayFormat = "{ ...

  3. 在项目中利用TX Text Control进行WORD文档的编辑显示处理

    在很多文档管理的功能模块里面,我们往往需要对WORD稳定进行展示.编辑等处理,而如果使用微软word控件进行处理,需要安装WORD组件,而且接口使用也不见得简单易用,因此如果有第三方且不用安装Offi ...

  4. 不再迷惑,无值和NULL值的转换

    在关系型数据库的世界中,无值和NULL值的区别是什么?一直被这个问题困扰着,甚至在写TSQL脚本时,心有戚戚焉,害怕因为自己的一知半解,挖了坑,贻害后来人,于是,本着上下求索,不达通幽不罢休的决心(开 ...

  5. Bash On Windows的学习

    Bash On Windows的学习 Bash On Windows的卸载 删除软件和设置:在 cmd 运行lxrun /uninstall 删除所有文件:在cmd中运行lxrun /uninstal ...

  6. Win10 & Linux Docker 安装使用

    Docker最近推出了可以运行在Win10和Mac上的稳定版本,让我们赶紧来体验一下. 一.Windows Docker 安装 1.安装 需要的条件为: 64bit Windows 10,开启Hype ...

  7. php添加pcntl扩展(Linux)

    pcntl扩展可以支持php的多线程操作(仅限linux)原本需要重新编译PHP的后面configrue提示加上--enable-pcntl 由于我的php是采用yum安装的,所以不能采用上面的方式下 ...

  8. Mongodb基础用法及查询操作[转载]

    插入多条测试数据> for(i=1;i<=1000;i++){... db.blog.insert({"title":i,"content":&qu ...

  9. 【Android Developers Training】 92. 序言:使用同步适配器传输数据

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  10. ovs+dpdk numa感知特性验证

    0.介绍 本测试是为了验证这篇文章中提到的DPDK的NUMA感知特性. 简单来说,在ovs+dpdk+qemu的环境中,一个虚拟机牵涉到的内存共有三部分: DPDK为vHost User设备分配的De ...