gpt4 book ai didi

swift - 检查泛型类型是否是 Swift 中的函数类型

转载 作者:行者123 更新时间:2023-11-30 12:59:54 31 4
gpt4 key购买 nike

我定义了一个泛型类,如下

class A<T:Any>{
var value:T?
}

我想知道如何将 T 限制为函数类型,并可以在 A 类中编写类似 value() 的代码。

let a = A<()->()>()

最佳答案

我遇到了类似的问题,我最终是这样解决的:

首先,我定义了一个泛型类型,表示一个接受单个参数和返回值的函数:

typealias Monad<A, R> = (A) -> (R)

然后,我定义了我的类,以采用输入类型的泛型类型参数。就我而言,传递的每个函数都将返回 void,因此我不需要两个类型参数。

class HoldsMyCallback<A> {
let callback: Monad<A, Void>

init(callback: @escaping Monad<A, Void>) {
self.callback = callback
}
}

...

let funcKoozie = HoldsMyCallback<Int> {
print("keep my \($0) function cold")
}

funcKoozie.callback(1)

关于swift - 检查泛型类型是否是 Swift 中的函数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39972601/

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