元组在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 = aa = bb = 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 = 42println(num)println(num.0.0.0.0)

元组还有一个实用的地方就是错误处理了,能够把错误直接放在元组里面返回

參考:喵神的书

swift学习之元组相关推荐

  1. swift 学习(一)

    swift学习 一.基础部分 1. 常量(let) 变量(var) swift能够自己推断变量的类型,可以不用写变量的类型 let test = "你好,世界!!" let tes ...

  2. 【swift学习笔记】二.页面转跳数据回传

    上一篇我们介绍了页面转跳:[swift学习笔记]一.页面转跳的条件判断和传值 这一篇说一下如何把数据回传回父页面,如下图所示,这个例子很简单,只是把传过去的数据加上了"回传"两个字 ...

  3. python元组的定义方式_学习Python元组,有哪些必须要掌握的内容

    展开全部 学习Python元组2113,有哪些必须要掌握的5261内容? 1.Python元组4102 定义 元组是Python的一种内建数据结构.1653关于元组: 1.元组属于序列,可以存放任意元 ...

  4. swift学习笔记《5》- 实用

    title: swift学习笔记<5>- 实用 date: 2016-09-21 21:39:00 categories: 学习笔记 Swift学习 tags: Swift 1.setVa ...

  5. Apple Swift学习资料汇总

    [更新]Apple Swift学习资料汇总 1月16日厦门 OSC 源创会火热报名中,奖品多多哦 »   今年的苹果开发者大会(WWDC)上,公布了ios8的几个新特性,其中包括引入了群聊功能,支持第 ...

  6. 汇集了很多swift 学习指南

    https://github.com/ipader/SwiftGuide 1,059  Unstar 7,294 Fork1,966 ipader/SwiftGuide  Code  Issues 0 ...

  7. Swift学习笔记(4)使用UIImagePickerController实现从设备图片库和照相机获取图片

    Swift学习笔记(4)使用UIImagePickerController实现从设备图片库和照相机获取图片 设备图片库和照相机是图像的两个重要来源,使用UIKit中提供的图像选择器UIImagePic ...

  8. Python 学习笔记 元组 xxxxxxx XXXXXXXXXX

    Python 学习笔记 元组 xxxxxxx XXXXXXXXXX print("=" * 20) dimensions = (200, 50) print(dimensions[ ...

  9. swift 学习资料大全

    版本:Swift github排名 https://github.com/trending,github搜索:https://github.com/search 主要工作说明:  1. 将Swift从 ...

最新文章

  1. 非极大值抑制_非极大值抑制(Non-Maximum Suppression)
  2. hadoop基本命令
  3. SQL Server中的Merge关键字
  4. php语言smtp类,php mailer类调用远程SMTP服务器发送邮件实现方法
  5. mfc 弹框只出现一次_只出现一次的数字
  6. Android拖拽详解
  7. 日志和告警数据挖掘经验谈
  8. linux创建crontab定时任务
  9. 移植2.6.38内核到s3c6410问题
  10. Mysql---之Mysqladmin修改账号密码方式
  11. php发布post到wordpress,PHP-如何将数据发布到wordpress插件?
  12. Unity播放序列帧,功能丰富
  13. ubuntu server 开机自动运行程序
  14. Android调用getSimSerialNumber获取iccid不完整(RK3288 7.1.2)
  15. 重塑汽车产业价值链,ChinaJoy诚邀造车新势力加盟
  16. AutoFill 自动填充生长动画插件
  17. kline 专业金融K线绘制库
  18. jQuery源码分析之$.grep()函数四问
  19. 二手房屋信息发布交易小程序开发制作功能
  20. [零基础易语言教程]1-1 什么是易语言

热门文章

  1. a:hover span 隐藏/显示 问题
  2. hive大字段拼接与切割实战(一个大字段保存每天历史数据)
  3. iostream iterator类详
  4. 创建SpringBoot项目的两种姿势
  5. CentOS 7系统,Docker想启用userns-remap,傻了吧?
  6. java 基础之图片的多线程处理和大文件的多线程拷贝
  7. 易位构词EOJ3451【字符串】【思维题】【模拟】
  8. Docker 容器的通信(十二)
  9. JS数组操作之增删改查
  10. hive学习2(Navicat连接hive)