2016-12-07 10 views
-1

Какая разница между: -В чем разница между частным сеттером и собственностью readonly?

private(set) var string: String 

и

var string: String { get } 
+0

В файле, где вы определили класс, только внутри этого класса вы можете установить значение этой строки. Вы не можете установить эту переменную из любой точки. –

+0

Я подумал, что ясно, что у него есть функция набора, но она закрыта, а другая не – zombie

+1

В частном наборе вы можете установить свойство в классе, в котором находится свойство. Но в свойстве readonly вы можете установить свойство из ниоткуда. –

ответ

1

Private сеттер означает переменная может быть установлена ​​внутри класса, в котором она объявлена ​​в Он будет вести себя так, как только для чтения имущества, выходящий за пределы класса. объем.

Свойство Readonly может быть доступно только, а не мутировано. Никаких исключений.

0

Я думаю, что: для Private var string: String, другой файл не может его посещать. но вы можете изменить его значение. И для var string: String {get}, другой файл может посетить его, и вы можете установить другое свойство, чтобы изменить его значение, например: var stringValue = ""; var string: String {get {return stringValue}}, вы можете изменить stringValue для изменения строки. просто моя мысль.

1

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 для большей ясности, если вам нужно.

 Смежные вопросы

  • Нет связанных вопросов^_^