branchID设置为getter但我可以设置该值。将它指定为setter / getter有什么用?
protocol Bank {
var name: String {get set}
var branchID: Int {get}
}
struct Person: Bank {enter code here
var name: String = "ABC Bank"
var branchID: Int = 123
}
let person = Person()
person.name
person.branchID
答案 0 :(得分:1)
首先,代码不使用协议。
如果对象采用协议,则必须实现协议要求。您的代码会创建一个具有Person
Person
var person = Person()
您可以更改branchID
person.branchID = 13
但是,如果您将person
投射到Bank
var bank = person as Bank
bank.branchID = 13
你会收到错误
无法分配给属性:'branchID'是get-only属性
如果声明一个尝试更新符合Bank
func updateID(item : Bank)
{
item.branchID = 12
}
答案 1 :(得分:0)
Person中的branchID是一个新对象,你当然可以改变它的值。 当你写'银行。 branchID',你不能设置它的值