Swift学习之元组(Tuple)
定义
元组是由若干个类型的数据组成,组成元组的数据叫做元素,每个元素的类型都可以是任意的。
用法一
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)的更多相关文章
- Swift中的元组tuple的用法
用途 tuple用于传递复合类型的数据,介于基础类型和类之间,复杂的数据通过类(或结构)存储,稍简单的通过元组. 元组是使用非常便利的利器,有必要整理一篇博文. 定义 使用括号(), 括号内以逗号分割 ...
- swift学习之元组
元组在oc中是没有的.在swift中是新加的,学oc数组概念时还在想既然能够存储同样类型的元素,那不同类型的元素有没有东西存储呢,答案非常悲伤,oc没有元组这个概念.只是swift中加入了这个东西,也 ...
- Python学习笔记(4)--数据结构之元组tuple
元组(tuple) 定义:tuple和list十分相似,但是tuple是不可变的,即不能修改tuple 初始化:(), ('a', ) , ('a', 'b') //当只有一个元素时,需加上逗号, ...
- 记录:swift学习笔记1-2
swift还在不断的更新做细微的调整,都说早起的鸟儿有虫吃,那么我们早点出发吧,趁着国内绝大多数的coder们还没有开始大范围普遍应用. 网上有些大神说:swift很简单!我不同意这个观点,假如你用h ...
- Swift学习笔记八
函数 Swift的函数语法非常独特,也提供了很高的灵活性和可读性.它可以充分表达从简单的无参数C风格函数到复杂的拥有局部变量和外部变量的OC风格的方法.参数可以有默认值,方便函数的调用.Swift中的 ...
- Swift学习笔记四
前面三篇笔记通过一些示例展示了Swift的一些特性,粗略地介绍了它的语法和特色,从这一篇笔记开始,将正式系统地介绍Swift的语法和特性了. Swift是一门为iOS和OSX开发准备的全新语言,但是它 ...
- Swift 学习- 07 -- 函数
// 函数 // 函数是一段完成特定任务的独立代码片段, 你可以通过给函数命名来标识某个函数的功能, 这个名字可以被用来在需要的时候'调用'这个函数来完成它的任务 // swift 统一的函数语法非常 ...
- Swift 学习- 06 -- 控制流
// 控制流 // swift 提供了多种控制流结构,包括可以多次执行的 while 循环,基于特定条件选择执行不同分支的 if, guard 和 switch 语句,还有控制流程跳转到其它代码位置的 ...
- Swift 学习- 02 -- 基础部分2
class NamedShape{ var numberOfSides: Int = 0 var name: String init(name: String) { self.name = name ...
随机推荐
- Wowza 部署 安装 配置 测试 直播
下载,最好用快的IP下好后传到需要的节点上,下面链接不能下载的情况下百度谷歌必应找资源,jdk旧版在oracle需登录方可下载 JDK1.6 wget -c http://dl.download.cs ...
- 常见浏览器User-Agent大全
http://blog.csdn.net/tianjinjianzhan/article/details/51702232
- vue中数据双向绑定注意点
最近一个vue和element的项目中遇到了一个问题: 动态生成的对象进行双向绑定是失败 直接贴代码: <el-form :model="addClass" :rules=& ...
- ubuntu 16.04.2 源码安装gitlab并且利用runner持续集成
参考原档:https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/installation.md#using-https 本章只 ...
- solr 搜索引擎查询
搜索引擎查询的时候://对于这些filterQuery的字段,必须是indexed="true",如果之前有这个字段后来改这个indexed属性,则需要重新建立索引,否则搜索不到S ...
- golang中defer的使用规则
转自个人博客chinazt.cc 在golang当中,defer代码块会在函数调用链表中增加一个函数调用.这个函数调用不是普通的函数调用,而是会在函数正常返回,也就是return之后添加一个函数调用. ...
- 屏幕适配/autoLayout autoresizingMask
#pragma mark-- 屏幕适配/autoLayout autoresizingMask 1> 发展历程 代码计算frame -> autoreszing(父控件和子控件的关系) - ...
- Vijos 1111 小胖的水果 LCS
描述 xuzhenyi到大同水果店去买水果,但老板huyichen告诉他每次只能买一种,但是xuzhenyi想吃两种,于是在讨价还价之后,huyichen说只要xuzhenyi能把他想要的两种水果合并 ...
- Mysql元数据分析
Mysql元数据分析 @(基础技术) 一.information_schema库 information_schema库中的表,保存的是Mysql的元数据. 官网元数据表介绍 InnoDB相关的表介绍 ...
- JAVA - 深入JAVA 虚拟机 1
Java虚拟机与程序的生命周期 Java虚拟机将结束生命周期 1.call System.exit(n) Terminates the currently running JVM. 2.程序正常执行结 ...