Swift 在协议中拥有财产的目的是什么?
我创建了一个协议,如下所示Swift 在协议中拥有财产的目的是什么?,swift,swift-protocols,Swift,Swift Protocols,我创建了一个协议,如下所示 protocol FullyNamed { var fullName: String { get } } 下面是我的班级,他们确认了这个协议 class Starship: FullyNamed { var prefix: String? var name: String init(name: String, prefix: String? = nil) { self.name = name self.
protocol FullyNamed {
var fullName: String { get }
}
下面是我的班级,他们确认了这个协议
class Starship: FullyNamed {
var prefix: String?
var name: String
init(name: String, prefix: String? = nil) {
self.name = name
self.prefix = prefix
}
var fullName: String {
return (prefix != nil ? prefix! + " " : "") + name
}
}
var ncc1701 = Starship(name: "Enterprise", prefix: "USS")
// ncc1701.fullName is "USS Enterprise"
我意识到当我们现在在protcol中使用函数时,我们使用protcol作为一个列表器。当我在这里添加属性时,为什么我会在protcol中使用属性。请回答
编辑:就像在链接中阅读一样,只是开发者不需要
犯错误&必须包括确认协议,因为这些对象
肯定会有“名字”吗
如果您在protocol中有属性,并且您的一个类确认了该协议,那么您可以确保您的类中也有该协议所具有的属性 如果您有两个不同的类来确认此协议,那么在其他CLA的某些函数中,您有:
func makeSomething(item:YourProtocolHere){
//you can be sure and use without any cast
item.protocolproperty
}
可能重复的