gpt4 book ai didi

c++ - 在 Swift 中定义显式泛型方法

转载 作者:可可西里 更新时间:2023-11-01 01:43:57 25 4
gpt4 key购买 nike

在 C++ 中,我可以这样做:

class foo {
template <class bar>
bar baz() {
return bar()
}
}

但是当我在 Swift 中尝试这个时:

class Foo {
func baz<Bar>() -> Bar {
return Bar()
}
}

我收到 Swift 不支持显式泛型方法特化的语法错误。

Swift中有没有类似的实现?

最佳答案

我不知道 C++ 中的代码到底做了什么。但是你可以使用 Type Constraints .

然而它对我来说仍然没有意义,因为在 Swift 中并不是每个类都有无参数的构造函数。所以我想出了这段代码,但我不确定这是否有帮助:

protocol TypeWithEmptyConstructor {
init()
}

class SomeClass {
required init() {
}
}

extension SomeClass: TypeWithEmptyConstructor { }

class Foo {
func baz<Bar: TypeWithEmptyConstructor>() -> Bar {
return Bar()
}
}

关于c++ - 在 Swift 中定义显式泛型方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25329382/

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