Какая разница между: -В чем разница между частным сеттером и собственностью readonly?
private(set) var string: String
и
var string: String { get }
Какая разница между: -В чем разница между частным сеттером и собственностью readonly?
private(set) var string: String
и
var string: String { get }
Private сеттер означает переменная может быть установлена внутри класса, в котором она объявлена в Он будет вести себя так, как только для чтения имущества, выходящий за пределы класса. объем.
Свойство Readonly может быть доступно только, а не мутировано. Никаких исключений.
Я думаю, что: для Private var string: String, другой файл не может его посещать. но вы можете изменить его значение. И для var string: String {get}, другой файл может посетить его, и вы можете установить другое свойство, чтобы изменить его значение, например: var stringValue = ""; var string: String {get {return stringValue}}, вы можете изменить stringValue для изменения строки. просто моя мысль.
private(set) var string: String
- В этом случае private(set)
только делает функцию set частной, а private делает оба набора и выполняет функции private.
var string: String { get }
- В этом случае переменная строка считывается только.
Просто посетите этот http://kostiakoval.github.io/posts/swift-public-property-with-private-setter для большей ясности, если вам нужно.
В файле, где вы определили класс, только внутри этого класса вы можете установить значение этой строки. Вы не можете установить эту переменную из любой точки. –
Я подумал, что ясно, что у него есть функция набора, но она закрыта, а другая не – zombie
В частном наборе вы можете установить свойство в классе, в котором находится свойство. Но в свойстве readonly вы можете установить свойство из ниоткуда. –