gpt4 book ai didi

swift - 具有关联类型的协议(protocol)中的通用变量。漏洞?

转载 作者:搜寻专家 更新时间:2023-11-01 07:18:36 24 4
gpt4 key购买 nike

<分区>

我使用的是 Xcode 7.3 和 Swift 2.3。我在使用具有变量的关联类型的协议(protocol)时遇到困难。看例子:

protocol SomeProtocol {}
class SomeProtocolImpl: SomeProtocol {}

protocol ProtocolWithAssociatedType {
associatedtype T: SomeProtocol

var variable: T { get }
}

class TestClass: ProtocolWithAssociatedType {

var variable: SomeProtocol = SomeProtocolImpl()

}

由于某种原因,编译器显示错误: error image这怎么可能?难道我做错了什么?这是一个错误吗?一个已知的?

我尝试过的:

为关联类型定义类型别名:

class TestClass: ProtocolWithAssociatedType {
typealias O = SomeProtocol
var variable: SomeProtocol = SomeProtocolImpl()
}

没有。

改为使用方法:

protocol SomeProtocol {}
class SomeProtocolImpl: SomeProtocol {}

protocol ProtocolWithAssociatedType {
associatedtype T: SomeProtocol

func someMethod() -> T
}

class TestClass: ProtocolWithAssociatedType {
typealias T = SomeProtocol

func someMethod() -> SomeProtocol {
return SomeProtocolImpl()
}

}

只是有不同的错误: second error image

我应该如何创建具有关联类型和变量的协议(protocol)并避免此错误?

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