You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中带Int参数的闭包如何初始化?

如何初始化带Int参数的闭包类型(Int) -> ()

嘿,这个问题其实和你已经掌握的无参数闭包初始化逻辑一脉相承,只是需要适配闭包的参数要求就行,我给你举几个常用的实现方式:

1. 初始化空实现的闭包

如果你只是需要先给闭包一个合法的初始值(暂时不需要具体逻辑),可以忽略传入的Int参数,写一个空实现:

class TestClass {
    var myClosure: (Int) -> ()
    
    init() {
        // 用下划线`_`表示忽略传入的Int参数,闭包内部什么都不做
        myClosure = { _ in }
    }
}

2. 初始化带默认逻辑的闭包

如果想在初始化时给闭包设置一个默认的处理行为(比如打印传入的数字),可以在闭包体内使用参数:

class TestClass {
    var myClosure: (Int) -> ()
    
    init() {
        myClosure = { number in
            print("收到的整数是:\(number)")
        }
    }
}

补充说明

你的闭包类型(Int) -> ()表示:它接收一个Int类型的输入参数,并且没有返回值。所以只要你赋值的闭包符合这个签名要求(不管是空实现还是有具体逻辑),就完成了合法的初始化。

如果之后需要修改闭包的行为,直接重新赋值即可,比如:

let test = TestClass()
test.myClosure = { num in
    print("修改后的逻辑:数字乘以2是\(num * 2)")
}

内容的提问来源于stack exchange,提问作者Evgeniy Kleban

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:28:14