gpt4 book ai didi

swift - 如何将函数作为可选参数传递 Swift

转载 作者:搜寻专家 更新时间:2023-11-01 05:47:16 25 4
gpt4 key购买 nike

Swift 的新手,我目前正在通过以下方式将函数作为可选参数传递:

import Foundation 

func foo()
{
print("Foo")
}

func bar()
{
print("Bar")
}

func dummy()
{
return
}

func myFunc()
{
myFunc(callBack: dummy())
}

func myFunc(callBack: (Void))
{
foo()
callBack
}

myFunc()
myFunc(callBack: bar())

即利用多态性

这似乎是一种不优雅的方式,有没有更好的方式,

谢谢,汤姆

编辑:

我知道我可以通过以下方式缩短它:

import Foundation 

func foo()
{
print("Foo")
}

func bar()
{
print("Bar")
}

func dummy()
{
return
}

func myFunc(callBack: (Void) = dummy())
{
foo()
callBack
}

myFunc()
myFunc(callBack: bar())

但我仍然会说这是一个不优雅的解决方案

最佳答案

您可以轻松地将函数的默认值定义为参数:

func foo(completion: () -> Void = { }) {
completion()
}

你也可以让它默认为 nil:

func foo(completion: (() -> Void)? = nil) {

当它是一个可选的闭包时,你必须这样调用它:

completion?()

关于swift - 如何将函数作为可选参数传递 Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53391622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com