I swift bruges egenskaber til at beskrive attributter for et objekt, og de kan være konstanter eller variabler i klasser, strukturer eller opregninger.

I swift bruges egenskaber til at gemme værdierne for klasser, strukturer eller opregninger, og egenskaber har getter- og setter-metoder til at ændre eller indstille egenskabsværdier baseret på vores krav.

Swift definerer en egenskab

Følgende er det enkle eksempel på at oprette en klasse med egenskaber i et swift-programmeringssprog.

class UserDetails {

var firstName: String = “”

var lastName: : String = “”

}

Hvis du ser ovenstående eksempel, har vi defineret en klasse “UserDetails” med to egenskaber (firstName, lastName).

Swift Assign and Access Properties

Følgende er et eksempel på at deklarere og tildele værdier til de definerede egenskaber i klassen.

class UserDetails {

var firstName: String = “”

var lastName:

var lastName: String = “”

}

var uinfo = UserDetails()

uinfo.firstName = “Suresh”

uinfo.lastName = “Dasari”

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

Hvis du ser ovenstående eksempel, har vi defineret to egenskaber “firstName”, “lastName”, og disse værdier er tilknyttet klassen “UserDetails”. Derefter har vi oprettet instans for denne klasse og adgang til egenskaberne i klassen for at tildele værdier baseret på vores krav.

Når vi kører ovenstående program i swift playground får vi et resultat som vist nedenfor

Name: På samme måde kan vi definere og få adgang til egenskaber i strukturer og opregninger baseret på vores krav i swift-programmeringssproget.

Vi har en anden type egenskaber til rådighed i swift programmeringssprog, der er

  • Stored Properties
  • Computed Properties

Swift Stored Properties

In swift stored property er en konstant eller variabel, og den er gemt som en del af en instans af en bestemt klasse eller struktur. Den gemte egenskab kan bruges til at gemme en variabel med nøgleordet var og en konstant med nøgleordet let.

Vi kan angive en standardværdi for en gemte egenskab som en del af dens definition, og vi kan ændre de oprindelige værdier for en gemte egenskab under dens initialisering.

Nu vil vi se, hvordan vi kan definere lagrede egenskaber i klasser, og hvordan vi kan ændre de oprindelige værdier af lagrede egenskaber under initialiseringen med et eksempel.

Følgende er et eksempel på definition af lagrede egenskaber som en del af en klasse eller struktur i et swift-programmeringssprog.

struct UserDetails {

var firstName: String = “Rohini”

let lastName::

let lastName::

let lastName: String

}

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

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

Hvis du ser ovenstående eksempel, har vi defineret to lagrede egenskaber (firstName, lastName), en som en variabel (var) og en anden som konstant (let) med begyndelsesværdier. Derefter oprettede vi instans af strukturen og ændrede de oprindelige værdier under dens initialisering.

Når vi kører ovenstående program i swift playground får vi et resultat som vist nedenfor

Name: Suresh Dasari

Dette er hvordan vi kan definere gemte egenskaber i klasser, strukturer, opregninger baseret på vores krav i swift programmeringssprog.

Stored Properties for Constant Structure Instances

I swift kan vi definere en klasse eller struktur med gemte egenskaber som en konstant. I tilfælde, hvis vi definerer konstant egenskab med indledende værdi, så er det ikke muligt for os at ændre denne værdi, fordi når værdien tildelt til en konstant variabel, der skal være den samme i hele programmet.

Hvis vi forsøger at ændre konstant egenskabsværdi under dens initialisering eller med instansen af en klasse, vil compileren kaste en fejl.

Følgende er eksemplet på ændring af konstant lagret egenskabsværdi efter initialisering af værdi under oprettelse af instans af klasse.

struct UserDetails {

var firstName: String = “Rohini”

let lastName: String

}

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

uinfo.lastName = “Alavala”

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

Hvis du observerer ovenstående eksempel, definerede vi en konstant egenskab “lastName” og tildeler værdi til variablen under oprettelsen af instans af klassen. Derefter forsøger vi igen at ændre værdien af den konstante variabel.

Når vi forsøger at køre ovenstående eksempel i swift playground, får vi en fejl som vist nedenfor

Fejl: kan ikke tildele egenskab: ‘lastName’ er en ‘let’ konstant

Når vi tildeler en værdi til den konstante egenskab, der skal være den samme i hele programmet, ellers vil det kaste en fejl. Du kan få flere oplysninger om konstanter i denne Swift-konstanter.

Swift Lazy Stored Properties

I swift lazy stored property er en egenskab, hvis oprindelige værdi ikke indlæses før første gang, egenskabsværdien bruges. I swift kan vi definere en lazy stored property ved at bruge nøgleordet lazy før dens deklaration.

In swift lazy stored properties er nyttige, når den oprindelige værdi af egenskaben ikke skal indlæses, før den bruges i programmet. Antag, at vi har en ejendom, og vi har brug for at udføre nogle komplekse operationer for at indlæse eller initialisere værdien, men det er kun påkrævet på bestemte steder i det tilfælde, hvis vi bruger lazy stored properties, vil disse værdier ikke blive indlæst, indtil vi bruger det i vores kode.

Nu vil vi se, hvordan man bruger lazy stored properties i swift-programmer med eksempler.

Følgende er eksemplet på brug af lazy stored property i swift-programmeringssprog.

class Student {

var name: String

lazy var studentInfo: String = {

return “Velkommen til Tutlane, \(self.name)!”

}()

init(name: String) {

self.name = name

}

}

let stu = Student(name: “Suresh”)

print(stu.studentInfo)

Hvis du observerer ovenstående eksempel, definerede vi en doven gemt egenskab “studentInfo” ved hjælp af lazy nøgleordet. Denne egenskabsværdi vil ikke blive indlæst, før print-erklæringen kalder egenskaben fra student-klasseinstansen.

Når vi kører ovenstående program i swift-legepladsen, får vi et resultat som vist nedenfor

Velkommen til Tutlane, Suresh!

Dette er, hvordan vi kan bruge dovne lagrede egenskaber i et swift programmeringssprog baseret på vores krav.

Her skal vi huske, at vi altid skal huske, at vi altid skal erklære dovne lagrede egenskaber som en variabel (var), fordi dens værdi ikke hentes, indtil instansinitialiseringen er afsluttet, men for konstante (let) egenskaber skal have en værdi, før initialiseringen er afsluttet, det er grunden til, at vi altid skal definere dovne egenskaber som variabler.

Swift Computed Properties

I swift i modsætning til gemte egenskaber vil beregnede egenskaber ikke gemme en værdi i stedet beregnede egenskaber vil give en getter og en valgfri setter til at hente og indstille andre egenskabsværdier indirekte. Vi kan definere beregnede egenskaber i klasser, strukturer og opregninger baseret på vores krav.

Følgende er et eksempel på definition af beregnede egenskaber ved hjælp af getter og setter til at indstille værdier i swift-programmeringssproget.

class Circle {

var radius : Double?

var cval : Double?

var Area: Double {

get {

return radius! * radius!

}

set (newArea){

cval = Double(newArea) * 3.14

}

}

}

let result = Circle()

result.Area = 20

print(result.cval)

Hvis du ser ovenstående eksempel, indstiller vi en ny værdi for egenskaben “Area” ved hjælp af getter- og setter-egenskaber.

Når vi kører ovenstående program i swift playground får vi et resultat som vist nedenfor

62.8000000000000000004

Det er sådan, vi kan bruge beregnede egenskaber i et swift-programmeringssprog til at bruge værdier uden at gemme baseret på vores krav.

Swift Read-Only Computed Properties

En beregnet egenskab med kun getter, men ingen setter er kendt som en read-only beregnede egenskaber. I swift kan vi få adgang til read-only computed property via punktum (.) syntaks, og den returnerer altid en værdi.

Følgende er et eksempel på brug af read-only computed properties i et swift-programmeringssprog.

class Multiplication {

var num1 : Int = 5

var num2 : Int = 5

var multiply: Int {

get {

return num1 * num2

}

}

}

let r = Multiplication()

print(r.multiply)

I ovenstående eksempel har vi defineret to egenskaber med standardværdier i klassen og ganget de to tal ved hjælp af getter. Derefter oprettede vi en instans for klassen og fik adgang til getter-værdien ved hjælp af punkt (.) syntaks.

Når vi kører ovenstående program i swift legeplads får vi resultatet som vist nedenfor

25

Dette er, hvordan vi kan bruge skrivebeskyttede beregnede egenskaber til at indstille værdierne ved hjælp af getter-egenskaber i swift programmeringssprog.

Swift Property Observer

In swift property observers bruges til at observere og reagere på ændringer i ejendomsværdien, og disse ejendomsobservatører vil kalde hver gang, når ejendomsværdien ændres, selv om den nye værdi af egenskaben er den samme som ejendommens aktuelle værdi.

I swift kan ændringerne i egenskaber observeres ved hjælp af følgende to observatører.

  • willSet – Denne observatør kaldes lige før værdien gemmes.
  • didSet – Dette er en observatør, der kaldes, efter at den nye værdi er gemt.

I swift kan vi bruge egenskabsobservatører i alle gemte egenskaber, undtagen lazy stored properties.

Følgende er et eksempel på brug af willSet- og didSet-egenskaber i et swift-programmeringssprog.

class Changes {

var num1: Int = 10 {

willSet(newvalue) {

print(“Værdi af \(newvalue)”)

}

didSet {

if num1 > oldValue {

print(“Tilføjet \(num1 – oldValue)”)

}

}

}

}

let result = Changes()

result.num1 = 34

result.num1 = 987

Hvis du observerer ovenstående eksempel, har vi brugt willSet- og didSet-observatører, og disse egenskaber kaldes, når værdien af egenskaben bliver ændret.

Når vi kører ovenstående program i swift legeplads får vi resultat som vist nedenfor

Værdi 34

Tilføjet 24

Værdi 987

Tilføjet 953

Swift Type Property

In swift, instance properties er tilknyttet en instans af en klasse eller struktur, typeegenskaberne er tilknyttet en type i sig selv og tilhører ikke nogen instans af typen.

I swift kan vi definere en typeegenskab med statisk nøgleord og for beregnede typeegenskaber og for klassetyper skal vi bruge class nøgleordet, men det vil ikke tillade at overskrive superklassens metoder eller variabler.

Følgende er et eksempel på brug af typeegenskab i programmeringssproget swift.

struct typepro {

static let msg = “Welcome to Tutlane”

}

class Class1 {

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

}

class Class2 {

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

}

var ss = Class1()

ss.test()

Hvis du observerer ovenstående eksempel, har vi defineret en typeegenskab med statisk nøgleord og har adgang til typeegenskabsværdier ved at henvise til navnet og bruge dot-syntaks til at få adgang til værdien.

Når vi kører ovenstående program i programmeringssproget swift, får vi et resultat som vist nedenfor.

Velkommen til Tutlane

Swift forespørgsel og indstilling af typeegenskaber

I swift forespørges typeegenskaber, og vi kan derefter indstille værdien med punkt (.) syntaks, ligesom når vi opretter en instans og tildeler værdier til egenskaber. Typeegenskaberne forespørges dog og indstiller egenskabsværdien på typen og ikke på en instans af den pågældende type.

Følgende er et eksempel på brug af typeegenskaber i programmeringssproget swift.

struct typerepo {

static var msg = “Welcome”

}

print(typerepo.msg)

typerepo.msg = “Velkommen til Tutlane”

print(typerepo.msg)

Hvis du observerer ovenstående eksempel, har vi oprettet typeegenskaben og indstiller værdien direkte ved at bruge en instans af den pågældende type.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.