Junior
O que significa se definir um setter para uma variável?
sobes.tech IA
Resposta da IA
Um setter (definidor) é um método que permite controlar a gravação de um novo valor numa variável. Ao definir um setter, o mecanismo padrão de atribuição de valores por defeito é substituído por um código dentro do setter. Isto permite:
- Validar os dados de entrada: Verificar se o novo valor cumpre as condições estabelecidas antes de o atribuir à variável.
var age: Int = 0 { didSet { // O setter (didSet) é chamado após a atribuição if age < 0 { age = 0 // Não permitir atribuir um valor negativo } } } - Executar ações adicionais: Executar outro código ao alterar o valor da variável, por exemplo, atualizar a interface de utilizador ou notificar outras partes da aplicação.
var score: Int = 0 { didSet { // O setter (didSet) print("Pontuação atualizada para \(score)") // Registar a alteração updateUI() // Atualizar a UI } } func updateUI() { // Código para atualizar a interface } - Calcular valores de outras propriedades: A alteração de uma propriedade pode influenciar o valor de outra.
var radius: Double = 0.0 { didSet { // O setter (didSet) area = Double.pi * radius * radius // Recalcular a área ao alterar o raio } } var area: Double = 0.0 // Propriedade dependente de radius
Os setters em Swift podem ser usados para propriedades armazenadas e propriedades calculadas. Para propriedades armazenadas, costuma-se usar observadores de propriedades (willSet e didSet), que são chamados antes e depois de definir um novo valor, respetivamente. Para propriedades calculadas, o setter (set) define como deve ser atribuída uma valor.
var myProperty: String {
// Getter
get {
return "O valor é: \(internalValue)"
}
// Setter
set(newValue) {
internalValue = newValue + " processado" // Modificar o valor atribuído
}
}
private var internalValue: String = "" // Propriedade interna armazenada