В Swift мы обозначаем неизменяемую переменную с помощью let
.
Я не понимаю, почему вы меняете их свойства. Например:
let lbl = UILabel()
lbl.textAlignment = .Right()
Почему вы можете изменить textAlignment
? В силу изменения свойства, разве мы не изменили также переменную lbl
, которая должна была быть постоянной?
2 ответа
Согласно Swift Programming Language свойства константы < em> структуры также являются константами, но константы классов могут иметь изменяемые свойства.
По их словам,
Если вы создаете экземпляр структуры и назначаете этот экземпляр константе, вы не можете изменять свойства экземпляра, даже если они были объявлены как свойства переменных ...
То же самое не относится к классам, которые являются ссылочными типами. Если вы назначаете экземпляр ссылочного типа константе, вы все равно можете изменить свойства переменной этого экземпляра.
Типы классов являются ссылочными типами - значение является указателем на объект. Невозможность изменить это просто означает не изменять ссылку, чтобы указать на другой объект. Это не имеет ничего общего с тем, что вы можете делать с указанным объектом.
Похожие вопросы
Связанные вопросы
Новые вопросы
swift
Swift — это язык программирования общего назначения, разработанный Apple Inc., впервые выпущенный в 2014 году для своих платформ и Linux. Swift имеет открытый исходный код. Используйте тег только для вопросов о языковых функциях или необходимости кода в Swift. Используйте теги [ios], [ipados], [macos], [watch-os], [tvos], [swiftui], [cocoa-touch] и [cocoa] для (не зависящих от языка) вопросов о платформах или рамки.
final/readonly
в Java и C#.