gpt4 book ai didi

swift - 如何在 Swift 3 中将函数设置为函数参数

转载 作者:可可西里 更新时间:2023-10-31 23:51:45 27 4
gpt4 key购买 nike

:是否可以在 Swift 3 中将函数作为函数参数传递?

为了重构我的代码,我想要一个全局函数。在此函数的末尾,有一个带有 action 参数的自定义按钮。

let deleteButton = MIAlertController.Button(title: "cancel", 
type: .cancel,
config: getDestructiveButtonConfig(),
action: {
print("completed")
})

我想做的是,设置一个以函数作为参数的全局函数。

MyGlobalStuff.swift
...
func getButton(_ myFunc: func, _ title: String) {
let deleteButton = MIAlertController.Button(title: title,
type: .cancel,
config: getDestructiveButtonConfig(),
action: {
myFunc // call here the function pass by argument
})
}

getButton(..) 调用,并在同一类中传递函数。

MyViewController.swift
...
getButton(myPrintFunc, "cancel")

func myPrintFunc() {
print("completed")
}

这样的事情可能吗?非常感谢您的帮助。

最佳答案

是的,您可以将一个函数/闭包作为另一个函数的参数传递。

这是语法

func doSomething(closure: () -> ()) {
closure()
}

这里函数 doSomething 接收一个没有参数也没有返回类型的闭包作为参数。

您可以使用此语法调用 doSomething

doSomething(closure: { _ in print("Hello world") })

或者使用尾随闭包语法

doSomething { 
print("Hello world")
}

关于swift - 如何在 Swift 3 中将函数设置为函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40467847/

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