这是我在下面的功能:
func myFunction(value: (String) -> Void) {
value("Hello")
}
使用情况:
myFunction(value: { newValue in
print(newValue)
})
我想把这个函数转换成一个闭包:
我做了这个:
typealias Action = () -> Void
let myClosure: (Action) -> Void = { action in
action()
}
用例是:
myClosure {
print("Hello")
}
但是正如你所看到的,myClosure
不能设置字符串,我希望能够执行以下代码:
myClosure { newValue in
print(newValue)
}
需要帮助来解决这个狡猾的代码。
3条答案
按热度按时间ercv8c1e1#
你只需要在
Action
typealias中添加一个泛型类型参数:myClosure
的定义如下:输出
你好
世界
sczxawaw2#
你只需要对你的“闭包”尝试做一个小的改变,就可以复制你的“函数”方法。
您需要在
typealias
中添加一个String
参数,然后在调用action
时传递一个字符串:现在,当您这样做时:
你会得到输出:
你好
yzckvree3#
直觉
myFunction
接受一个以string
为输入并返回void
的闭包一样,myClosure
也应该这样做。print
函数作为参数传递给myClosure
,我们可以打印字符串Hello
。代码