swift中的闭包

来源:互联网 发布:网络控制器感叹号 编辑:程序博客网 时间:2024/05/17 03:38

//

//  main.swift

//  闭包

//

//  Created by 朱敏 on 15/6/15.

//  Copyright (c) 2015 helinyu. All rights reserved.

//


import Foundation



let names = ["Lily","Anna","Duty","Poly","Gray"]


func compareName(s1 :String , s2:String) ->Bool {return s1 < s2}


//var sortedArray = names.sorted(compareName)

//println("排列之后的变化:\(sortedArray)");


var sortedArray = names.sorted({(s1:String, s2:String) ->Bool inreturn s1 < s2})


println("排列之后的变化:\(sortedArray)");



let a = 5

//let a = 4

println(a)



//下面的函数实现了两个字符串变量的相加

func sayHello(s1 :String ,s2:String){

    var str = s1 +" " +  s2

    println("the values is :\(str)")

}

sayHello("nihao","helinyu")





/*


1:func 是函数关键字

2:Say是函数名,表示函数的地址

3:Say函数参数是整形 返回值为布尔类型

*/


func Say(num:Int)->Bool{

    

    return num >10

    

}

var By:(Int)->Bool = Say


/*

1Say是函数名的地址,并且函数类型,参数为整形,返回值布尔类型

2:(Int)->Bool表示 函数类型,参数为整形,返回值为布尔类型。

即:By是函数变量(参数为整形,返回值为布尔类型)指向函数名(Say)

*/

var b = By(10)//by(12)直接调用函数

println(b)



/*

函数Getlist说明

参数:

1:第一个参数整形集合变量

2:第二参数,函数类型变量参数为整形返回值布尔类型

返回值

整形集合

*/

//func GetList(arr:Int[] , pre:(Int)->Bool) ->Int[]{

//    //定义一个空的可变整形集合

//    var tempArr = Int[]()

//    

//    for temp in arr {

//        if pre(temp){

//            tempArr += temp;

//        }

//    }

//    return tempArr;

//}

//

///*

//调用Getlist说明

//第一个参数整形数组 [1,2,3,4]

//第二个参数 闭包 来指向给函数类型

//{(s) in return s>2} 闭包类型说明,参数为整形,返回值为布尔类型

//*/

//let arr=GetList([1,2,3,4],{(s:Int) in return s>2})

//println(arr)



//类中实例属性没有初始化的时候,是编译不过去的。

//解决:1)定义变量的时候做好初始化 2)使用初始化方法进行初始化



class Rect

{

//    var width:Int = 0;

//    var height:Int = 0;

    //或者

//    var width:Int;

//    var height:Int;

//    

//    //初始化方法

//    init()

//    {

//        width = 0;

//        height = 0;

//    }

    //3)又或者

    var width:Int;

    var height:Int;

    

    init(w:Int, h:Int)

    {

        width = w;

        height = h;

    }


    

    

    func setSize(w:Int, height:Int)

    {

        width = w;

        self.height = height;

    }

    

//    func getArea() -> Int{

//        return self.width * height;

//    }

}


//var rect = Rect();

//rect.setSize(10, height: 20);

var rect = Rect(w:10,h:20)

println("求得的面积是:\(rect)")

println("求得的面积是:\(rect)")




0 0
原创粉丝点击