zoukankan      html  css  js  c++  java
  • 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)
    元组还有一个实用的地方就是错误处理了,能够把错误直接放在元组里面返回





    參考:喵神的书

  • 相关阅读:
    [dll注入实现IAT勾取] 计算器显示中文
    [记事本API Hook] 调试器 勾取 WriteFile()Api
    [DLL注入的方法]进程创建期修改PE输入表法
    [DLL注入的方法]静态修改PE输入表法
    [1]编程实现加载驱动
    [保护模式]测试一致代码段
    [保护模式]联系1 三环访问高2G
    15.[保护模式]TSS任务门
    ERP中HR模块的操作与设计--开源软件诞生26
    ERP的主数据的操作与设计--开源软件诞生25
  • 原文地址:https://www.cnblogs.com/clnchanpin/p/6748219.html
Copyright © 2011-2022 走看看