gpt4 book ai didi

swift - 是否可以在 Swift 中创建具有 Self 或关联类型要求的通用计算属性,如果可以,如何创建?

转载 作者:搜寻专家 更新时间:2023-11-01 06:54:19 26 4
gpt4 key购买 nike

考虑以下几点:

protocol SomeProtocol: Equatable {}

// then, elsewhere...

var someValue: Any?

func setSomething<T>(_ value: T) where T: SomeProtocol {
someValue = value
}

func getSomething<T>() -> T? where T: SomeProtocol {
return someValue as? T
}

这些函数工作正常,但本质上就像计算属性一样。有什么办法可以实现类似下面的东西吗?

var something<T>: T where T: SomeProtocol {
get { return someValue as? T }
set { someValue = newValue }
}

感谢阅读。抱歉,如果这个问题已经在其他地方被问到,我已经搜索过了,但有时我的搜索功能很弱。

最佳答案

您需要在泛型类型上定义计算属性,计算属性本身不能定义泛型类型参数。

struct Some<T:SomeProtocol> {
var someValue:Any

var something:T? {
get {
return someValue as? T
}
set {
someValue = newValue
}
}
}

关于swift - 是否可以在 Swift 中创建具有 Self 或关联类型要求的通用计算属性,如果可以,如何创建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54686692/

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