Swift From Scratch Variabler og Konstanter

I den første artikkelen fra Swift From Scratch lærte du om Xcode lekeplasser og skrev dine første linjer med Swift. I denne artikkelen vil vi begynne å lære grunnleggende av Swift programmeringsspråket ved å utforske variabler og skrive. Vi vil også ta en nærmere titt på konstanter og hvorfor du oppfordres til å bruke dem så mye som mulig.

I de neste delene av denne serien skal vi bruke Xcode-lekeplasser for å lære grunnleggende av Swift programmeringsspråket. Som vi så i forrige artikkel, er lekeplasser ideelle for undervisning og læring Swift.

La oss starte med å skape en ny lekeplass for denne opplæringen. Jeg oppfordrer deg til å følge med! Å bruke et språk er en fin måte å lære sin syntaks på og forstå konseptene sine.

Start Xcode 8 og opprett en ny lekeplass ved å velge Ny> Lekeplass ...  fra Xcode er Fil Meny. Skriv inn et navn på lekeplassen, sett Plattform til iOS, og klikk neste. Fortell Xcode hvor du vil lagre lekeplassen og trykke Skape.

Fjern innholdet på lekeplassen slik at vi kan starte med en ren skifer. Vi har allerede brukt variabler i den forrige opplæringen, men la oss se nærmere på de nitty-gritty detaljene for å bedre forstå hva Swift gjør bak kulissene.

1. variabler

Deklarere Variabler

I Swift bruker vi Var søkeord for å erklære en variabel. Selv om dette ligner på variabler er deklarert i andre programmeringsspråk, anbefaler jeg sterkt at du ikke tenker på andre programmeringsspråk når du bruker Var søkeord i Swift. Det er noen viktige forskjeller.

De Var Søkeord er den eneste måten å erklære en variabel i Swift. Den vanligste og konsekvente bruken av Var Søkeordet er å erklære en variabel og tildele en verdi til den.

var street = "5th Avenue"

Husk at vi ikke slutter denne koden med en semikolon. Mens et semikolon er valgfritt i Swift, er det ikke best å bruke semikolon hvis det ikke er nødvendig.

Du har også kanskje lagt merke til at vi ikke angav en type når du erklærer variabelen gate. Dette bringer oss til en av Swifts hovedtrekk, skriv innferd.

Skriv innføring

Ovennevnte setning erklærer en variabel gate og tildeler verdien 5th Avenue til det. Hvis du er ny til Swift eller du er vant til JavaScript eller PHP, kan du tenke at Swift er et typløst eller løst skrevet språk, men ingenting kan være lenger fra sannheten. La meg gjenta at Swift er et sterkt skrevet språk. Skriv sikkerhet er en av hjørnesteinene til språket.

Vi har nettopp kommet i gang, og Swift viser oss allerede litt av sin magi. Selv om ovennevnte setning ikke spesifiserer eksplisitt en type, variabelen gate er av typen string. Dette er Swifts type inferanse i aksjon. Verdien vi tilordner gate er en streng. Swift er smart nok til å se det og implisitt setter typen av gate til string.

Følgende erklæring gir oss det samme resultatet. Forskjellen er at vi eksplisitt angir typen av variabelen. Denne uttalelsen sier det bokstavelig talt gate er av type string.

var gate: String = "5th Avenue"

Swift krever at du eksplisitt eller implisitt angir typen variabler og konstanter. Hvis du ikke gjør det, klager Swift ved å kaste en feil. Legg til følgende linje på lekeplassen din for å se hva jeg mener.

var nummer

Denne uttalelsen ville være helt gyldig i JavaScript eller PHP. I Swift er det imidlertid ugyldig. Årsaken er enkel. Selv om vi erklærer en variabel ved bruk av Var søkeord, vi angir ikke variabeltypen. Swift kan ikke avlede typen, siden vi ikke tilordner en verdi til variabelen. Hvis du klikker feilen, forteller Xcode deg hva som er galt med denne utsagnet.

Vi kan enkelt fikse dette problemet ved å gjøre en av to ting. Vi kan tildele en verdi til variabelen som vi gjorde tidligere, eller vi kan eksplisitt spesifisere en type for variabelen Nummer. Når vi eksplisitt angir typen av Nummer, feilen forsvinner. Koden nedenfor viser dette Nummer er av typen string.

Var nummer: String

Endringstype

Som du ser nedenfor, tilordner du nye verdier til gate og Nummer er enkelt og kommer uten overraskelser.

var street: String = "5th Avenue" var nummer: String street = "Main Street" number = "10"

Ville det ikke være enklere å tildele nummeret 10 til Nummer variabel? Det er ikke nødvendig å lagre gatenummeret som en streng. La oss se hva som skjer hvis vi gjør det.

var street: String = "5th Avenue" var nummer: String street = "Main Street" nummer = 10

Hvis vi tilordner et heltall til Nummer, Xcode kaster en annen feil hos oss. Feilmeldingen er klar. Vi kan ikke tildele en verdi av typen int til en variabel av typen string. Dette er ikke et problem i løst skrevet språk, men det er i Swift.

Swift er et sterkt skrevet språk hvor hver variabel har en bestemt type, og den typen kan ikke endres. Les denne setningen igjen for å la den synke inn fordi dette er et viktig konsept i Swift.

For å kvitte seg med feilen, må vi erklære Nummer variabel som en int. Ta en titt på det oppdaterte eksemplet nedenfor.

var gate: String = "5th Avenue" var nummer: Int street = "Main Street" nummer = 10

Sammendrag

Det er viktig at du holder følgende i bakhodet. Du kan erklære en variabel med Var søkeord, og du trenger ikke å eksplisitt erklære variablettens type. Men husk at hver variabel og konstant-har en type i Swift. Hvis Swift ikke kan avlede typen, klager den. Hver variabel har en type, og den typen kan ikke endres.

2. konstanter

Konstanter ligner variabler i form av typing. Den eneste forskjellen er at verdien av en konstant ikke kan endres når den har en verdi. Verdien av en konstant er, vel ... konstant.

Deklarere Konstanter

For å erklære en konstant bruker du la søkeord. Ta en titt på følgende eksempel som vi erklærer gate som en konstant i stedet for en variabel.

la street: String = "5th Avenue" var nummer: Int street = "Main Street" nummer = 10

Hvis vi bare oppdaterer den første linjen, erstatter Var med la, Xcode kaster en feil av åpenbare grunner. Forsøk å endre verdien av en konstant er ikke tillatt i Swift. Fjern eller kommentere linjen der vi prøver å tildele en ny verdi til gate for å kvitte seg med feilen.

la street: String = "5th Avenue" var nummer: Int // street = "Main Street" nummer = 10

Bruke Konstanter

Jeg håper du er enig i at erklære konstanter er veldig enkelt i Swift. Det er ikke behov for eksotiske søkeord eller en kompleks syntaks. Deklarasjonskonstanter er like enkelt som deklarerer variabler, og det er ingen tilfeldighet.

Bruk av konstanter oppfordres i Swift. Hvis en verdi ikke kommer til å endres, eller du ikke forventer at den endres, bør den være en konstant. Dette har en rekke fordeler. En av fordelene er ytelse, men en viktigere fordel er sikkerheten. Ved å bruke konstanter når det er mulig, legger du til begrensninger i koden din, noe som resulterer i sikrere kode.

3. Datatyper

De fleste programmeringsspråk har et bredt spekter av typer for lagring av strenger, heltal, flyter, etc. Listen over tilgjengelige typer i Swift er kortfattet. Ta en titt på følgende liste:

  • int
  • Flyte
  • Dobbelt
  • string
  • Karakter
  • bool

Det er viktig å forstå at ovennevnte typer ikke er grunnleggende eller primitive typer. De er navngitte typer, som implementeres av Swift ved hjelp av strukturer. Vi undersøker strukturer mer detaljert senere i denne serien, men det er godt å vite at typene vi opplevde hittil ikke er de samme som de primitive typer du kanskje har brukt i, for eksempel Objective-C.

Det finnes mange flere datatyper i Swift, for eksempel tuples, arrayer og ordbøker. Vi undersøker dem senere i denne serien.

4. Skriv konvertering

Det er et annet tema vi må diskutere, type konvertering. Ta en titt på følgende Objective-C-utdrag. Denne kodeblokken gir verdien verdien 314.000000 til konsollen.

int a = 100; flyte b = 3,14; NSLog (@ "% f", (a * b));

Objective-C-kjøretiden konverterer implisitt en til en flytende verdi og multipliserer den med b. La oss omskrive den ovennevnte kodebiten ved hjelp av Swift.

var a = 100 var b = 3,14 print (a * b)

Ignorer print (_: separator: terminator :) funksjon for nå. Jeg vil først fokusere på multiplikasjon av en og b. Swift infers typen av en, en int, og b, en Dobbelt. Men når kompilatoren forsøker å formere seg en og b, det merker at de ikke er av samme type. Dette kan ikke virke som et problem for deg, men det er for Swift. Swift vet ikke hvilken type resultatet av denne multiplikasjonen skal være. Skal det være et heltall eller en dobbel?

For å fikse dette problemet må vi sørge for at begge operandene til multiplikasjonen er av samme type. Swift implisitt ikke konverterer operandene til oss, men det er lett å gjøre det. I det oppdaterte eksempelet nedenfor lager vi en Dobbelt bruker verdien som er lagret i en. Dette løser feilen.

var a = 100 var b = 3,14 print (Dobbel (a) * b)

Merk at typen av en har ikke endret seg. Selv om kodestykket ovenfor kan se ut som en type avstøpning, er det ikke det samme. Vi bruk verdien som er lagret i en å lage en Dobbelt, og det resultatet blir brukt i multiplikasjonen med b. Resultatet av multiplikasjonen er av type Dobbelt.

Det du trenger å huske er at Swift er forskjellig fra C og Objective-C. Det omdirigerer ikke implisitt verdier av variabler og konstanter. Dette er et annet viktig konsept å forstå.

5. Skriv ut

I den forrige kodestykket påkalte du din første funksjon, print (_: separator: terminator :). Denne funksjonen er lik Objective-C NSLog; den skriver ut noe og legger til en ny linje. For å skrive ut noe til konsollen eller resultatpanelet til høyre, påkaller du print (_: separator: terminator :) og send det til en parameter. Det kan være en variabel, en konstant, et uttrykk eller en bokstavelig. Ta en titt på følgende eksempler.

var streng = "dette er en streng" la konstant = 3,14 utskrift (streng) utskrift (konstant) utskrift (10 * 50) utskrift ("streng bokstavelig")

Det er også mulig å bruke strenginterpolering for å kombinere variabler, konstanter, uttrykk og bokstaver. Strenginterpolering er veldig lett i Swift. Vri variablene, konstantene, uttrykkene eller bokstavene i \ (). Lett som kake.

la street = "5th Avenue" la nummer = 10 skriv ut ("Hun bor på \ (gate) \ (tall).")

Konklusjon

Det er viktig at du forstår hvordan Swift håndterer variabler og konstanter. Selv om det kan ta litt tid å venne seg til konseptet med konstanter, når du har tatt imot denne beste praksisen, vil koden din bli mye tryggere og lettere å forstå. I neste veiledning av denne serien fortsetter vi utforskningen av Swift ved å se på samlinger.

Lær Swift

Vi har bygget en komplett guide for å hjelpe deg med å lære Swift, enten du er bare i gang med det grunnleggende eller du vil utforske mer avanserte emner.

Hvis du vil lære hvordan du bruker Swift 3 til å kode sanntidsprogrammer, sjekk ut kurset ditt Opprett IOS Apps With Swift 3. Enten du er ny i iOS app-utvikling eller ønsker å skifte bryteren fra Objective-C, dette kurset vil komme i gang med Swift for app utvikling.