swift学习之元组
元组在oc中是没有的。在swift中是新加的,学oc数组概念时还在想既然能够存储同样类型的元素,那不同类型的元素有没有东西存储呢,答案非常悲伤,oc没有元组这个概念。只是swift中加入了这个东西,也挺有意思的,以下就我个人说一下对元组的理解,假设有不正确的,请指出,共同进步,谢谢
元组(touples)就是能够存储不同数据类型的一个集合,用()表示,举个栗子
let touples = ("xiaoyu",16,"math",98.5)
println(touples)
看到提示就应该知道我们能够通过touples.0或者.1或者.2或者.3来訪问元组的元素,由swift的类型判断就知道相应的数据类型
我们也能够用另外一种方法创建元组
let (name,_,_,score) = touples
上面的_在swift中是通配符。记做忽略的意思,就是你不须要相应的值,用不着
println(name)
println(score)
事实上我个人更喜欢第三种方式,清晰明了,代码更易读
let touple = (name:"xiaoyu",age:16,souce:"math",scores:98.5)
println(touple.name)
说了上面一大推,我还是不知道元组能够干嘛,巴拉巴拉。仅仅知道怎么创建,读取等等。那么我们这个元组小伙伴能够做些啥事啊,以下举个小栗子
override func viewDidLoad() {
var touple = (name:"xiaoyu",age:16,souce:"math",scores:98.5)
println(touple.name)
swapMe(&touple.name, b: &touple.souce)
println(touple)
}
func swapMe<T>(inout a:T,inout b:T){
let temp = a
a = b
b = temp
}
通过上面的代码我们就偷偷把math和name交换了,(注意,这里仅仅能交换形同的类型,T是一种泛型表达),可是我们学了元组就能够这样写了
func swapMe<T>(inout a:T,inout b:T){
(a,b) = (b,a)
}
恩。能够达到同样的效果,不信,再来一个数组做实验
var tempArr = [5,7]
swapMe(&tempArr[0], b: &tempArr[1])
println(tempArr)
恩,这回真心能够了
还有就是元组真心放什么都能够啊。不信能够试试以下的操作
var num = 42
println(num)
println(num.0.0.0.0)
元组还有一个实用的地方就是错误处理了,能够把错误直接放在元组里面返回
參考:喵神的书
swift学习之元组的更多相关文章
- Swift学习之元组(Tuple)
定义 元组是由若干个类型的数据组成,组成元组的数据叫做元素,每个元素的类型都可以是任意的. 用法一 let tuples1 = ("Hello", "World" ...
- 从C#到Swift,Swift学习笔记
最近在学习IOS,我一直使用的是C#来开发,对Java .C.C++也有一定的了解.最近入手了一台Air,想试着学习IOS开发. 如果你不是C#和Java阵营的,如果你对Swift没有兴趣,就不用往下 ...
- 【swift学习笔记】二.页面转跳数据回传
上一篇我们介绍了页面转跳:[swift学习笔记]一.页面转跳的条件判断和传值 这一篇说一下如何把数据回传回父页面,如下图所示,这个例子很简单,只是把传过去的数据加上了"回传"两个字 ...
- 今天开始Swift学习
今天开始Swift学习 在此记录笔记 以备之后查阅! allenhuang
- iOS ---Swift学习与复习
swift中文网 http://www.swiftv.cn http://swifter.tips/ http://objccn.io/ http://www.swiftmi.com/code4swi ...
- 12套swift学习资源分享
虽然objective-c编程语言在过去很长一段时间都是iOS应用开发的基础语言,且很多iOS开发者对其也深爱有佳,但是随着swift编程语言的问世,迅速发展为开发者追捧的语言.且今年伴随着swift ...
- 李洪强iOS开发Swift篇—05_元组类型
李洪强iOS开发Swift篇—05_元组类型 一.元组类型介绍 1.什么是元组类型 元组类型由 N个 任意类型的数据组成(N >= 0),组成元组类型的数据可以称为“元素” 示例: let po ...
- Swift学习之常用UI的使用
Swift学习之常用UI的使用 最近笔者在开始学习苹果最新的编程语言,因为笔者认为,苹果既然出了这门语言就绝对不会放弃,除非苹果倒闭了(当然这里知识一个玩笑). 所以在不久的将来,swift绝对是iO ...
- [转]swift 学习资源 大集合
今天看到了一个swift的学习网站,里面收集了很多学习资源 [转自http://blog.csdn.net/sqc3375177/article/details/29206779] Swift 介绍 ...
随机推荐
- [CF183D]T-shirt
[CF183D]T-shirt 题目大意: 有\(n(n\le3000)\)个人和\(m(m\le300)\)种T恤,每个人都有一种喜欢的T恤,你知道每个人喜欢每种T恤的概率\(p_{i,j}\). ...
- C#高级编程9-第1章.NET体系结构
C#与NET的关系 C#编写的所有代码必须使用.NET FrameWork运行 C#是一种语言,但它本身不是.NET的一部分 C#一些特性,.NET不支持,.NET一些特性,C#不支持 公共语言运行库 ...
- ant design Modal遮罩层颜色加深 解决方案
1.原因 页面中存在多个Modal同时渲染及弹出(在table里使用Modal就会出现这种问题) 2.解决方案 不让多个Modal同时渲染就行了,设置Modal的visible属性为this.stat ...
- JDK篇
卸载系统自带的jdk 使用以下命令查看是否已经安装了jdk rpm -qa|grep java rpm -qa|grep jdk 如果已经安装了可能会得到下面的结果: java-1.4.2-gcj ...
- 电感式升压转换器-AIC1896 电感式升压转换器
电感式升压转换器-AIC1896 AIC1896是一个脉冲宽度调变(Pulse-Width-Modulation;PWM)控制之升压型转换器,它可以提供一个定电流以驱动白光LED. (图五A)为升压转 ...
- Redis持久化RDB和AOF优缺点是什么,怎么实现的?我应该用哪一个?
原文http://www.ymq.io/2018/03/24/redis/ Redis是一种高级key-value数据库.数据可以持久化,而且支持的数据类型很丰富.有字符串,链表,集 合和有序集合.支 ...
- jsondataobjects
jsondataobjects GITHUB: https://github.com/ahausladen/jsondataobjects.git 跨平台JSON库 Json Data Objects ...
- mormot允许跨域访问
mormot允许跨域访问 ctxt.OutCustomHeaders:='Access-Control-Allow-Origin:*' 允许跨域访问 其实其他HTTP控件要实现跨域访问,也是类似设置. ...
- 7. python 字符串格式化方法(2)
7. python 字符串格式化方法(2) 紧接着上一章节,这一章节我们聊聊怎样添加具体格式化 就是指定替换字段的大小.对齐方式和特定的类型编码,结构如下: {fieldname!conversion ...
- POJ 3740 Dancing Links
Dancing Links学习:http://www.cnblogs.com/steady/archive/2011/03/15/1984791.html 以及图文学习:http://www.cnbl ...