函数与闭包

这篇博客介绍了Swift中如何使用闭包作为参数传递给函数。首先定义了一个名为`loadData`的函数,它接受一个闭包`finished`作为参数,该闭包接收一个字符串并返回整数。然后,定义了另一个函数`demo`,它根据传入的名字返回相应的年龄。闭包可以在需要时执行,提供了灵活的代码复用方式。测试方法包括直接传入`demo`函数和在`loadData`中内联定义闭包。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 定义函数传入闭包

    /// 加载数据
    /// - Parameter finished: 完成回调
    /// 行参接收的值是 demo 函数的地址
    func loadData(finished:(_ text: String) -> Int){
        //text 参数,通常是异步任务完成传递“结果”
        //执行闭包 -> 通过函数地址运行
        //finished 是指向 demo 的地址
      let age = finished("wang er")
        if(age > 30){
            print("Max " + String(age))
        }else{
            print("Min " + String(age))
        }
    }

2. 定义函数实现闭包

    /**
     1.函数名是指向代码区的指针地址
     2.如果要执行函数,通过函数地址,找到第一句代码行
     3. 闭包 提前准备好的代码,在需要的时候执行
     */
    func demo(name: String) -> Int {
        print("hello " + name)
        //根据姓名返回年龄
        if name == "wang er"{
            return 32
        }else{
            return 18
        }
    }

3. 两种测试方法

  3.1 调用函数中传函数

   //loadData 的参数,是一个 demo 函数的首地址
   loadData(finished: demo)

  3.2 直接实现

    loadData { text -> Int in
            print("hello " + text)
            //根据姓名返回年龄
            if text == "wang er"{
                return 16
            }else{
                return 18
            }
       }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hanyang Li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值