gpt4 book ai didi

swift - 如何在 Swift 中检查/谓词函数类型?

转载 作者:搜寻专家 更新时间:2023-10-31 22:19:59 27 4
gpt4 key购买 nike

例如:

func f(x: Int) -> Int {    return x}func h(f: @escaping (Int) -> Any) {    if (f is (Int) -> Int) {        print(f(1))    } else {        print("invalid")    }}h(f: f)

我希望它打印出 1 但它实际上打印出 invalid

最佳答案

有一个使用泛型的解决方法:

func intF(x: Int) -> Int {
return x
}

func stringF(x: Int) -> String {
return "\(x)"
}

func h<T>(f: (Int) -> T) {
if (T.self == Int.self) {
print(f(1))
} else {
print("invalid")
}
}

h(f: intF) // prints: 1
h(f: stringF) // prints: invalid

关于swift - 如何在 Swift 中检查/谓词函数类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41409543/

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