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
/* 1:Say是函数名的地址,并且函数类型,参数为整形,返回值布尔类型 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)") (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |