Em swift, as propriedades são usadas para descrever atributos de um objeto e estes podem ser constantes ou variáveis em classes, estruturas ou enumerações.

Em swift, propriedades são usadas para armazenar os valores de classes, estruturas ou enumerações e propriedades têm métodos getter e setter para modificar ou definir valores de propriedades com base em nossos requisitos.

Swift Define a Property

Following é o exemplo simples de criar uma classe com propriedades em uma linguagem de programação swift.

class UserDetails {

var firstName: String = “”

var últimoNome: String = “”

}

se observarmos o exemplo acima, definimos uma classe “UserDetails” com duas propriedades (firstName, lastName).

Swift Assign and Access Properties

Following é o exemplo de declaração e atribuição de valores às propriedades definidas na classe.

classe UserDetails {

var firstName: String = “”

var lastName: String = “”

}

var uinfo = UserDetails()

uinfo.firstName = “Suresh”

uinfo.lastName = “Dasari”

print(“Name: \( uinfo.firstName) \(uinfo.lastName)”)

Se observarmos o exemplo acima definimos duas propriedades “firstName”, “lastName” e estes valores estão associados à classe “UserDetails”. Depois disso criamos exemplo para essa classe e acessando as propriedades dentro da classe para atribuir valores baseados em nossos requisitos.

Quando rodamos o programa acima em um playground rápido obteremos um resultado como mostrado abaixo

Name: Suresh Dasari

Da mesma forma que podemos definir e acessar propriedades em estruturas e enumerações baseadas em nossos requisitos em linguagem de programação rápida.

Temos um tipo diferente de propriedades disponíveis em linguagem de programação swift que são

  • Propriedades armazenadas
  • Propriedades computadas

Propriedades armazenadas do Swift

Na propriedade armazenada swift é uma constante ou variável e é armazenada como parte de uma instância de uma classe ou estrutura em particular. A propriedade armazenada pode ser usada para armazenar uma variável com var palavra-chave e uma constante com let palavra-chave.

Podemos fornecer um valor padrão para uma propriedade armazenada como parte de sua definição e podemos modificar os valores iniciais de uma propriedade armazenada durante a sua inicialização.

Agora veremos como definir propriedades armazenadas em classes e como modificar os valores iniciais de propriedades armazenadas durante a sua inicialização com exemplo.

A seguir é o exemplo de definir propriedades armazenadas como parte de uma classe ou estrutura em uma linguagem de programação rápida.

Detalhes de Usuário de Estruturo {

var firstName: String = “Rohini”

let lastName: String

}

var uinfo = UserDetails(firstName: “Suresh”, lastName: ” Dasari”)

print(“Name: \( uinfo.firstName) \(uinfo.lastName)”)

Se observarmos o exemplo acima, definimos duas propriedades armazenadas (firstName, lastName) uma como variável (var) e outra como constante (let) com valores iniciais. Depois disso criamos instância de estrutura e valores iniciais modificados durante sua inicialização.

Quando rodamos o programa acima em um playground rápido obteremos um resultado como mostrado abaixo

Name: Suresh Dasari

Esta é a forma como podemos definir propriedades armazenadas em classes, estruturas, enumerações baseadas em nossos requisitos em linguagem de programação swift.

Propriedades armazenadas para Instâncias de Estrutura Constante

Em swift, podemos definir uma classe ou estrutura com propriedades armazenadas como uma constante. No caso de definirmos propriedade constante com valor inicial então não é possível para nós modificar esse valor porque uma vez o valor atribuído a uma variável constante que deve ser o mesmo em toda a aplicação.

No caso de tentarmos modificar o valor da propriedade constante durante sua inicialização ou com a instância de uma classe, o compilador lançará um erro.

Following é o exemplo de modificação do valor da propriedade constante armazenada após a inicialização do valor durante a criação da instância da classe.

struct UserDetails {

var firstName: String = “Rohini”

let lastName: String

var uinfo = UserDetails(firstName: “Suresh”, lastName: ” Dasari”)

uinfo.lastName = “Alavala”

print(“Name: \( uinfo.firstName) \(uinfo.lastName)”)

Se observarmos o exemplo acima, definimos uma propriedade constante “lastName” e atribuímos valor à variável durante a criação da instância da classe. Depois disso novamente estamos tentando modificar o valor da variável constante.

Quando tentamos executar o exemplo acima em um playground rápido obteremos um erro como mostrado abaixo

Error: não pode atribuir à propriedade: ‘lastName’ é uma constante de ‘let’

Após atribuirmos um valor à propriedade constante que deve ser o mesmo em toda a aplicação, caso contrário ele irá lançar um erro. Para mais informações sobre constantes verifique esta constante Swift Constants.

Swift Lazy Stored Properties

In swift lazy stored property is a property whose initial value is not loaded until the first time the property value is used. Na swift, podemos definir uma propriedade armazenada preguiçosa usando a palavra-chave lazy antes de sua declaração.

Na swift lazy stored properties são úteis quando o valor inicial da propriedade não é necessário carregar até que seja usada na aplicação. Suponha que temos uma propriedade e precisamos realizar algumas operações complexas para carregar ou inicializar o valor, mas só é necessário em locais específicos nesse caso se utilizarmos propriedades armazenadas preguiçosas esses valores não serão carregados até que o utilizemos em nosso código.

Agora veremos como usar as propriedades lazy stored em aplicações rápidas com exemplos.

Following é o exemplo de uso da propriedade lazy stored em linguagem de programação rápida.

class Student {

var name: String

lazy var studentInfo: String = {

retorno “Bem-vindo ao Tutlane, \(self.name)!”

}()

init(name: String) {

self.name = name

}

let stu = Student(name: “Suresh”)

print(stu.studentInfo)

Se você observar o exemplo acima, definimos uma propriedade preguiçosa armazenada “studentInfo” usando a palavra-chave lazy. Este valor de propriedade não será carregado até que a declaração de impressão chame a propriedade da instância de classe do aluno.

Quando rodarmos o programa acima no playground rápido obteremos um resultado como o mostrado abaixo

Welcome to Tutlane, Suresh!

Esta é a forma como podemos usar propriedades armazenadas preguiçosas em uma linguagem de programação rápida baseada em nossos requisitos.

Aqui temos que lembrar que sempre precisamos declarar propriedades armazenadas preguiçosas como uma variável (var) porque seu valor não é recuperado até que a inicialização da instância termine, mas para propriedades constantes (let) precisamos ter um valor antes que a inicialização termine que é a razão pela qual sempre precisamos definir propriedades preguiçosas como variáveis.

Propriedades Computadas do Swift

Em propriedades rápidas ao contrário das propriedades armazenadas, as propriedades computadas não armazenarão um valor, em vez disso as propriedades computadas fornecerão um getter e um setter opcional para recuperar e definir indiretamente outros valores de propriedades. Podemos definir propriedades computadas em classes, estruturas e enumerações baseadas em nossos requisitos.

Following é o exemplo de definir propriedades computadas usando getter e setter para definir valores em linguagem de programação swift.

class Circle {

var radius : Double?

var cval : Double?

var Area: Duplo {

get {

raio de retorno! *raio!

set (newArea){

cval = Duplo(newArea) * 3.14

>

>

resultado = Circulo()

resultado.Area = 20

print(result.cval)

Se você observar o exemplo acima, estamos definindo um novo valor para a propriedade “Area” usando as propriedades getter e setter.

Quando executamos o programa acima em um playground rápido obteremos um resultado como mostrado abaixo

62.800000000000004

Esta é a forma como podemos usar propriedades computadas em uma linguagem de programação rápida para usar valores sem armazenamento baseado em nossos requisitos.

Swift Read-Only Computed Properties

Uma propriedade computada com apenas getter mas nenhum setter é conhecido como propriedades computadas somente para leitura. Em swift podemos acessar propriedades somente-leitura computadas através da sintaxe ponto (.) e ela sempre retorna um valor.

Following é o exemplo de uso de propriedades somente-leitura computadas em uma linguagem de programação swift.

classe Multiplicação {

var num1 : Int = 5

var num2 : Int = 5

var multiplicar: Int {

get {

return num1 * num2

}

}

}

let r = Multiplicação()

print(r.multiply)

No exemplo acima definimos duas propriedades com valores padrão na classe e multiplicando esses dois números usando getter. Depois disso criamos uma instância para a classe e acessando o valor getter usando a sintaxe dot (.).

Quando rodamos acima do programa em quick playground obteremos o resultado como mostrado abaixo

25

Esta é a forma como podemos usar propriedades somente leitura para definir os valores usando a propriedade getter em linguagem de programação swift.

Swift Property Observer

Em swift property observers são usados para observar e responder às mudanças no valor da propriedade e estes observadores de propriedade irão chamar sempre que o valor da propriedade mudar, mesmo que o novo valor da propriedade seja igual ao valor atual da propriedade.

Na swift, as mudanças nas propriedades podem ser observadas usando os dois seguintes observadores.

  • willSet – Este observador é chamado imediatamente antes do valor ser armazenado.
  • didSet – Este é um observador é chamado após o novo valor ser armazenado.

Na swift, podemos usar observadores de propriedade em qualquer propriedade armazenada, exceto propriedades armazenadas preguiçosas.

Following é o exemplo de utilização de propriedades willSet e didSet em uma linguagem de programação rápida.

alterações de classe {

var num1: Int = 10 {

willSet(newvalue) {

print(“Valor de \(newvalue)”)

}

didSet {

if num1 > oldValue {

print(“Adicionado \(num1 -) oldValue)”)

}

}

}

}

> resultado = Mudanças()

resultado.num1 = 34

result.num1 = 987

Se você observar o exemplo acima nós usamos willSet e didSet observers e estas propriedades são chamadas sempre que o valor da propriedade está sendo alterado.

Quando executamos o programa acima no parque rápido obteremos o resultado como mostrado abaixo

Valor de 34

Adicionado 24

Valor de 987

Adicionado 953

Propriedade tipo Swift

Em rápido, as propriedades de instância estão associadas a uma instância de classe ou estrutura, as propriedades de tipo estão associadas a um tipo em si, não pertencem a nenhuma instância do tipo.

Em swift, podemos definir uma propriedade type com palavra-chave estática e para propriedades type computadas e para tipos de classe precisamos usar class palavra-chave, mas isso não permitirá sobrepor os métodos ou variáveis de superclasse.

Following é o exemplo de uso da propriedade type em linguagem de programação rápida.

struct typepro {

static let msg = “Welcome to Tutlane”

}

class Class1 {

func test() { print(typepro.msg) }

}

classe Classe2 {

func test() { print(typepro.msg) }

}

var ss = Classe1()

ss.test()

Se você observar o exemplo acima, definimos uma propriedade type com palavra-chave estática e acessando os valores da propriedade type referenciando o nome e usando sintaxe de pontos para acessar o valor.

Quando executamos o programa acima em linguagem de programação rápida, obteremos o resultado como mostrado abaixo.

Welcome to Tutlane

Swift Querying and Setting Type Properties

Em swift, as propriedades type são consultadas e podemos então definir o valor com sintaxe de ponto (.) tal como quando criamos uma instância e atribuímos valores às propriedades. No entanto, as propriedades do tipo são consultadas e definimos o valor das propriedades no tipo, não numa instância desse tipo.

Following é o exemplo de utilização da propriedade type em linguagem de programação swift.

truct typerepo {

static var msg = “Welcome”

}

print(typerepo.msg)

typerepo.msg = “Bem-vindo ao Tutlane”

print(typerepo.msg)

Se você observar o exemplo acima, criamos a propriedade type e definimos o valor diretamente usando uma instância desse tipo.

Deixe uma resposta

O seu endereço de email não será publicado.