美文网首页
swift学习-闭包

swift学习-闭包

作者: 男人宫 | 来源:发表于2020-03-16 14:36 被阅读0次
//闭包
/*闭包格式
 {(参数名: 参数类型) in
      闭包主体
 }
*/
let 闭包 = { (name: String) in
    print("我女朋友的名字叫:\(name)")
}
闭包("小李")
//注意闭包和函数的区别,闭包不能加外部参数名
/*带有返回值的闭包
 {(参数名: 参数类型) -> (返回值类型) in
      闭包主体
 }
*/
let 闭包1 = { (age: Int) -> (String) in
    guard age > 18 && age < 25 else{
        return "不符合我的择偶标准"
    }
    return "做我女朋友好吗"
}
print(闭包1(20))
print(闭包1(30))
//将闭包作为参数.闭包可以像字符串和整型那样使用,所以可以作为参数使用
//注意:闭包其实是一种特殊的匿名函数
//从闭包是一种匿名函数也可以理解这些用法
let goSchool = { () -> () in
   print("去学习")
}
func goWork(){
    print("去上班吧孩子")
}
//参数类型 () -> () 一个无参无返回类型.只要符合这个类型的都可以进行传值.可知,函数和闭包都符合
func manDoThings(name: () -> ()){
   print("此处打印")
    name() //此处调用传入这个类型的函数或者闭包.可以把闭包作为匿名函数去调用
}

//调用函数时系统会提示有两种调用方法
//尾随闭包的调用方式.其实方法名后面省去了()
manDoThings {
   // 闭包主体部分.在这里传参
   // goSchool()
    goWork()
}
//此处闭包作为普通参数.闭包和函数的用法相同
manDoThings(name: goWork)
manDoThings(name: goSchool)
//有参数闭包
let goStreet = { (name: String) -> () in
    print("\(name)去哪了?")
}

func todayTodo(aname: (String) -> ()){
      aname("小明")
}
//有参有返回闭包
todayTodo { (heeh: String) in
    goStreet(heeh)
}

let bibao1 = { (str: String) -> String in
    return "\(str)的年龄是18"
}

func funcThings1(name: (String) -> String) -> String{
    let cc = name("刘燕")
    return cc
}
//aStr后面的类型可以不写,因为swift会自己推断出是String类型.其实闭包里还省略了return
let  dd = funcThings1 { (aStr) -> String in
     bibao1(aStr)
    //return bibao1(aStr)
}
print(dd)
//返回是闭包
func funcThing2(name: String) -> (Int) -> (String){
    func abc(age: Int) -> String {
        if age < 8 {
            return "\(name)正在上学前班"
        }else{
            return "\(name)正在上小学"
        }
    }
    return abc(age:)
}
//定义一个常量接受返回类型.这里返回类型是一个闭包(函数)
let  bibao22 = funcThing2(name: "小豆")
//去调用
let ee = bibao22(10)
print(ee)
//闭包还可以捕获外部的值
//此处省略

相关文章

  • swift闭包学习

    闭包作为参数 参考 Swift学习之闭包

  • Swift5.x-枚举(中文文档)

    引言 继续学习Swift文档,从上一章节:闭包,我们学习了Swift闭包相关的内容,如闭包的定义和使用、闭包的简写...

  • Swift学习笔记(1)

    SWift学习笔记 闭包 闭包表达式 闭包是自包含的函数代码块,可以在代码中被传递和使用。Swift 中的闭包与 ...

  • Swift-闭包

    Swift 闭包 函数 ()->() Swift 中的闭包和 Objective-C 中的 block 类似,闭包...

  • Swift闭包和函数

    函数在Swift中只是一种特殊的闭包,闭包在Swift语言中是一等公民,支持闭包嵌套和闭包传递。Swift中的闭包...

  • swift学习笔记 ⑥ —— 闭包

    Swift学习笔记 - 文集 闭包,就是能够读取其他函数内部变量的函数。Swift 中的闭包与 C 和 OC 中的...

  • swift4 闭包

    swift 闭包 闭包:swift 中 函数是闭包的一种类似于oc的闭包闭包表达式(匿名函数) -- 能够捕获上下...

  • Swift中的闭包

    在Swift中有两种闭包,逃逸闭包(@escaping)和非逃逸闭包(@nonescaping)。从Swift 3...

  • 100 Days of Swift - Day 06 - 闭包(

    100 Days of Swift - Day 06 - 闭包Closures 6.1 闭包 Swift函数也属于...

  • swift学习

    * 闭包 * 闭包作为属性 ```swift // 声明闭包类型 typealias callba...

网友评论

      本文标题:swift学习-闭包

      本文链接:https://www.haomeiwen.com/subject/rjpgehtx.html