LaneBlog

蝼蚁虽小,也有梦想

PHP Socket服务 | PHP微信开发框架 | 开源博客

初探Swift九 - 泛型与结构体

Clicks: 2029 Date: 2015-01-19 10:14:39 Power By 李轩Lane

swift ios

    

    初探Swift,Swift结构体是一种数据类型,与C语言的结构体类型,成员可以是各种数据类型,甚至是函数。Swift泛型是广泛的类型,即函数的参数中一个变量声明为Int,它也可以接受String并处理。


    一、结构体,声明与使用:

/**

 * 结构体

 */

//声明一个结构体,结构体带有默认值

struct People {

    var name = "小明"

    var age = 0

    func getKeyNumber()->Int{

        return age

    }

}

var xiaoming = People()

xiaoming.getKeyNumber()

var lane = People(name: "Lane", age: 24)

lane.getKeyNumber()


    二、泛型:在一个函数中,比如在交换两个变量值的函数中,声明时定义了Int型,那如果我想交换两个String时,怎么办?

/**

* 泛型

* 比如在交换两个变量值的函数中,声明时定义了Int型,那如果我想交换两个String时,怎么办?

*/

func swapValue(inout a:Int, inout b:Int){

    let temp = a

    a = b

    b = temp

}

//引入泛型

func newSwapValue<T>(inout a:T, inout b:T){

    let temp = a

    a = b

    b = temp

}

//交换两个String

var a = "hello"

var b = "world"

a

b

newSwapValue(&a, &b)

a

b

//交换两个Int

var c = 1

var d = 2

c

d

newSwapValue(&c, &d)

c

d


/**

* 类中定义泛型

*/

class MyT<T>{

    func getName(s:T)->Void{           

        println(s)

    }

}


var myTObj = MyT<Int>()

myTObj.getName(123)

var myTObj2 = MyT<String>()

myTObj2.getName("Hello world")

©2014 www.lanecn.com , All rights reserved. Power By Li Xuan.  京ICP备14005030号