siwft—3

来源:互联网 发布:知天命指的是多少岁 编辑:程序博客网 时间:2024/06/10 12:49

siwft—3

//

// main.swift

// swift-3-0924

//

// Created by fuiying on 15/9/24.

// Copyright (c) 2015年 fuiying. All rights reserved.

//

import Foundation

println(“Hello, World!”)

//闭包。类似与OC中的block,反向传值、引起代码的回调

func hasClosureMathes(arr : [Int], value:Int, cb:(num:Int, vaule:Int)->Bool)->Bool{

for item in arr{    if cb(num:item, vaule:value){        return true    }}

return false

}

//in 是闭包的一个标志 参数列表和返回值类型 in 闭包所要实现的代码块

var v1 = hasClosureMathes([2, 45, 6], 12) { (num, vaule) -> Bool in

if num < vaule{    return true}else{    return false}

}

print(v1)

var v2 = hasClosureMathes([2, 45, 6], 1) { (num, vaule) -> Bool in

if num < vaule{    return true}else{    return false}

}

print(v2)

//定义一个数组 里面 string类型的人名,判断数组里面是否有一个叫小美的人,如果有返回“大家好,小美在这呢”,如果没有,返回“咦,怎么找不到小美”

func nameList(list:[String], block:(name:String)->Bool)->String{

for item in list{    if block(name: item){        return "大家好,小美在这呢"    }}return "咦,怎么找不到小美"

}

var v3 = nameList([“小明”, “小哇”, “小美”], { (name) -> Bool in

if name == "小美"{    return true}return false

})

print(v3)

//如果闭包的代码块里面只有一句代码的话,可以省掉if

//1、省掉if

var v4 = nameList([“小明”, “小哇”, “小美”], { (name) -> Bool in

 name == "小美"

})

print(v4)

//2、省掉闭包块

//01表示闭包传进来的第二个参数

var v5 = nameList([“小明”, “小哇”, “小美”], {

$0 == "小美"

})

print(v5)

//闭包在我们的实际应用中都有哪些。

//数组的map 属性,可以遍历数组,然后对其进行相应地操作

//泛型, 比较抽象。他会根据你进行的操作做出判断给你返回相应地值。比如你进行+操作。他就返回 Int 数组,如果你进行>操作,他就给你返回true 或者false的值

var numbers = [12, 23, 45, 56, 57]

let mapedNumbers = numbers.map ({

number in number > 10

})

print(mapedNumbers)

//数组的sort方法,这个方法会自动遍历进行前后比较,如果num1

0 0
原创粉丝点击