微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

swift中的闭包

//

// 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 in return 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,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)")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐