gpt4 book ai didi

swift - 如何定义用作类型的协议(protocol)

转载 作者:行者123 更新时间:2023-11-30 14:11:56 24 4
gpt4 key购买 nike

我看到了这个工作代码(Swift 1.2)

var itemToPrint : Printable
itemToPrint = 105.0
println( itemToPrint )

所以我尝试了这个:

protocol AProtocol {
var value: Int
}
var myVarProtocol: AProtocol
myVarProtocol = 155

我得到了错误

:10:17: error: cannot assign a value of type 'Int' to a value of type 'AProtocol

我需要对 AProtocol 做什么才能使协议(protocol)作为一种类型工作(如果我的措辞正确的话)?

最佳答案

这是预料之中的,因为您正在创建一个可以存储符合您的协议(protocol)的任何类型的变量,但您试图为其分配一个不符合您的协议(protocol)的类型(Int) .

在这种情况下,您必须手动添加对 AProtocolInt 的一致性。请记住,您已经定义了一个协议(protocol),该协议(protocol)规定任何符合该协议(protocol)的类型都必须实现 value 变量,因此您必须向任何类型添加 value 的定义。输入您想在这里工作。

protocol AProtocol {
var value: Int { get }
}

extension Int: AProtocol {
var value: Int {
return self
}
}

var myVarProtocol: AProtocol
myVarProtocol = 155
print(myVarProtocol) // 155

关于swift - 如何定义用作类型的协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31677710/

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