Swift from Scratch variabelen en constanten

In het eerste artikel van Swift From Scratch leerde je over Xcode-speeltuinen en schreef je eerste regels van Swift. In dit artikel beginnen we met het leren van de grondbeginselen van de Swift-programmeertaal door variabelen te onderzoeken en te typen. We zullen constanten ook nader bekijken en waarom je wordt aangemoedigd ze zo veel mogelijk te gebruiken.

In de volgende afleveringen van deze serie gaan we gebruik maken van Xcode-speelvelden om de basisprincipes van de Swift-programmeertaal te leren. Zoals we in het vorige artikel zagen, zijn speelplaatsen ideaal om Swift te onderwijzen en te leren.

Laten we beginnen met het maken van een nieuwe speeltuin voor deze tutorial. Ik moedig je aan om mee te gaan! Het gebruik van een taal is een geweldige manier om de syntaxis ervan te leren en de concepten ervan te begrijpen.

Start Xcode 8 en maak een nieuwe speelplaats door te selecteren Nieuw> Speeltuin ...  van Xcode's het dossier menu. Voer een naam in voor de speeltuin, ingesteld Platform naar iOS, en klik volgende. Vertel Xcode waar je de speeltuin wilt redden en slaan creëren.

Ruim de inhoud van de speelplaats op zodat we kunnen beginnen met een schone lei. We hebben in de vorige tutorial al gebruik gemaakt van variabelen, maar laten we nu de details nauwkeurig bekijken om beter te begrijpen wat Swift achter de schermen doet.

1. Variabelen

Variabelen declareren

In Swift gebruiken we de var sleutelwoord om een ​​variabele te declareren. Hoewel dit vergelijkbaar is met de manier waarop variabelen worden gedeclareerd in andere programmeertalen, raad ik u ten zeerste af om niet aan andere programmeertalen te denken bij het gebruik van de var sleutelwoord in Swift. Er zijn een paar belangrijke verschillen.

De var keyword is de enige manier om een ​​variabele in Swift te declareren. Het meest voorkomende en beknopte gebruik van de var trefwoord is om een ​​variabele te declareren en er een waarde aan toe te wijzen.

var street = "5th Avenue"

Vergeet niet dat we deze regel code niet beëindigen met een puntkomma. Hoewel een puntkomma optioneel is in Swift, is het niet de beste praktijk om een ​​puntkomma te gebruiken als dit niet verplicht is.

Je hebt misschien ook gemerkt dat we geen type hebben opgegeven bij het declareren van de variabele straat. Dit brengt ons bij een van de belangrijkste functies van Swift, type gevolgtrekking.

Type Inference

De bovenstaande verklaring verklaart een variabele straat en wijst de waarde toe 5th Avenue ernaar toe. Als je nieuw bent bij Swift of je bent gewend aan JavaScript of PHP, dan denk je misschien dat Swift een typeloze of losjes getypte taal is, maar niets is minder waar. Laat me herhalen dat Swift een sterk getypte taal is. Type veiligheid is een van de hoekstenen van de taal.

We zijn net begonnen en Swift toont ons al een beetje zijn magie. Hoewel de bovenstaande verklaring niet expliciet een type specificeert, de variabele straat is van het type Draad. Dit is de gevolgtrekking van Swift in actie. De waarde die we toewijzen straat is een string. Swift is slim genoeg om dat te zien en stelt impliciet het type in straat naar Draad.

De volgende verklaring geeft ons hetzelfde resultaat. Het verschil is dat we expliciet het type van de variabele instellen. Deze verklaring zegt dat letterlijk straat is van type Draad.

var street: String = "5th Avenue"

Swift vereist dat u expliciet of impliciet het type variabelen en constanten instelt. Als je het niet doet, klaagt Swift door een fout te maken. Voeg de volgende regel toe aan je speeltuin om te zien wat ik bedoel.

var nummer

Deze verklaring zou volkomen geldig zijn in JavaScript of PHP. In Swift is het echter ongeldig. De reden is simpel. Ook al declareren we een variabele met de var sleutelwoord, we specificeren niet het type van de variabele. Swift kan het type niet afleiden, omdat we geen waarde toewijzen aan de variabele. Als u op de fout klikt, vertelt Xcode u wat er mis is met deze verklaring.

We kunnen dit probleem eenvoudig oplossen door een van twee dingen te doen. We kunnen een waarde toekennen aan de variabele zoals we eerder hebben gedaan, of we kunnen expliciet een type voor de variabele specificeren aantal. Wanneer we het type expliciet instellen aantal, de fout verdwijnt. De onderstaande regel code leest dat aantal is van het type Draad.

var nummer: String

Type veranderen

Zoals u hieronder kunt zien, kunt u nieuwe waarden toewijzen aan straat en aantal is eenvoudig en levert geen verrassingen op.

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

Zou het niet eenvoudiger zijn om het nummer toe te wijzen 10 naar de aantal variabele? Het is niet nodig om het straatnummer als een string op te slaan. Laten we kijken wat er gebeurt als we dat doen.

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

Als we een geheel getal toekennen aan aantal, Xcode gooit nog een fout bij ons. De foutmelding is duidelijk. We kunnen geen waarde van het type toewijzen Int naar een variabele van het type Draad. Dit is geen probleem in losjes getypte talen, maar het is in Swift.

Snel is een sterk getypte taal waarin elke variabele een specifiek type heeft en dat type kan niet worden gewijzigd. Lees deze zin nog een keer goed door, want dit is een belangrijk concept in Swift.

Om van de fout af te komen, moeten we de aantal variabel als een Int. Bekijk het bijgewerkte voorbeeld hieronder.

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

Samenvatting

Het is belangrijk dat u het volgende in gedachten houdt. U kunt een variabele declareren met de var sleutelwoord, en u hoeft niet expliciet het type van de variabele te declareren. Onthoud echter dat elke variabele en constante een type heeft in Swift. Als Swift het type niet kan afleiden, klaagt het. Elke variabele heeft een type en dat type kan niet worden gewijzigd.

2. Constants

Constanten lijken qua variabelen op variabelen. Het enige verschil is dat de waarde van een constante niet kan worden gewijzigd als deze een waarde heeft. De waarde van een constante is, nou ja ... constant.

Constiden declareren

Om een ​​constante te declareren, gebruikt u de laat trefwoord. Bekijk het volgende voorbeeld waarin we verklaren straat als een constante in plaats van een variabele.

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

Als we alleen de eerste regel bijwerken, vervangen var met laat, Xcode genereert een fout om voor de hand liggende redenen. Proberen de waarde van een constante te wijzigen, is in Swift niet toegestaan. Verwijder of becommentarieer de regel waarin we een nieuwe waarde proberen toe te wijzen straat om van de fout af te komen.

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

Constanten gebruiken

Ik hoop dat je het ermee eens bent dat het verklaren van constanten in Swift heel gemakkelijk is. Er is geen behoefte aan exotische sleutelwoorden of een complexe syntaxis. Het declareren van constanten is net zo eenvoudig als het declareren van variabelen, en dat is geen toeval.

Het gebruik van constanten wordt in Swift aangemoedigd. Als een waarde niet gaat veranderen of u verwacht niet dat deze zal veranderen, dan zou het een constante moeten zijn. Dit heeft een aantal voordelen. Een van de voordelen is de prestaties, maar een belangrijker voordeel is de veiligheid. Door constanten zoveel mogelijk te gebruiken, voegt u beperkingen toe aan uw code, wat resulteert in veiligere code.

3. Gegevenstypen

De meeste programmeertalen hebben een breed scala aan typen voor het opslaan van strings, gehele getallen, drijvers, enz. De lijst met beschikbare types in Swift is beknopt. Bekijk de volgende lijst:

  • Int
  • Vlotter
  • Dubbele
  • Draad
  • Karakter
  • Bool

Het is belangrijk om te begrijpen dat de bovenstaande typen geen standaard- of primitieve typen zijn. Het zijn named types, die worden geïmplementeerd door Swift met behulp van structuren. We onderzoeken structuren later in deze serie in meer detail, maar het is goed om te weten dat de typen die we tot nu toe tegenkwamen niet dezelfde zijn als de primitieve typen die je misschien hebt gebruikt, bijvoorbeeld Objective-C.

Er zijn veel meer gegevenstypen in Swift, zoals tuples, arrays en woordenboeken. We verkennen die later in deze serie.

4. Typ conversie

Er is nog een onderwerp dat we moeten bespreken, type conversie. Bekijk het volgende objectief-C-fragment. Dit codeblok voert de waarde uit 314.000000 naar de console.

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

De runtime voor Objective-C converteert impliciet een naar een zwevende-kommawaarde en vermenigvuldigt deze met b. Laten we het bovenstaande codefragment met Swift herschrijven.

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

Negeer de drukken (_: separator: terminator :) functie voor nu. Ik wil me eerst concentreren op de vermenigvuldiging van een en b. Swift geeft het type af een, een Int, en b, een Dubbele. Wanneer de compiler echter probeert te vermenigvuldigen een en b, het merkt op dat ze niet van hetzelfde type zijn. Dit lijkt misschien geen probleem voor u, maar het is voor Swift. Snel weet niet welk type het resultaat van deze vermenigvuldiging zou moeten zijn. Moet het een geheel getal of een dubbel zijn?

Om dit probleem te verhelpen, moeten we ervoor zorgen dat beide operands van de vermenigvuldiging van hetzelfde type zijn. Swift converteert de operanden niet impliciet voor ons, maar het is eenvoudig om dit te doen. In het bijgewerkte onderstaande voorbeeld maken we een Dubbele de waarde gebruiken die is opgeslagen in een. Dit lost de fout op.

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

Merk op dat het type een is niet veranderd. Ook al lijkt het bovenstaande codefragment op type-casting, het is niet hetzelfde. Wij gebruik de waarde die is opgeslagen in een om een ​​te maken Dubbele, en dat resultaat wordt gebruikt in de vermenigvuldiging met b. Het resultaat van de vermenigvuldiging is van het type Dubbele.

Wat u moet onthouden, is dat Swift anders is dan C en Objective-C. Het converteert niet impliciet waarden van variabelen en constanten. Dit is een ander belangrijk concept om te begrijpen.

5. Print

In het vorige codefragment hebt u uw eerste functie aangeroepen, drukken (_: separator: terminator :). Deze functie is vergelijkbaar met Objective-C's NSLog; het drukt iets af en voegt een nieuwe regel toe. Als u iets wilt afdrukken naar de console of het resultatenvenster aan de rechterkant, roept u aan drukken (_: separator: terminator :) en geef het een parameter door. Dat kan een variabele, een constante, een uitdrukking of een letterlijke tekst zijn. Bekijk de volgende voorbeelden.

var string = "this is a string" let constant = 3.14 print (string) print (constant) print (10 * 50) print ("string letterlijk")

Het is ook mogelijk om stringinterpolatie te gebruiken om variabelen, constanten, expressies en letterlijke variabelen te combineren. String-interpolatie is heel eenvoudig in Swift. Wikkel de variabelen, constanten, uitdrukkingen of letterlijk in \ (). Heel makkelijk.

let street = "5th Avenue" let number = 10 print ("She leeft at \ (street) \ (number).")

Conclusie

Het is belangrijk dat u begrijpt hoe Swift omgaat met variabelen en constanten. Hoewel het enige tijd kan kosten om aan het concept van constanten te wennen, zal uw code, eenmaal u deze best practice hebt omarmd, veel veiliger en gemakkelijker te begrijpen zijn. In de volgende zelfstudie van deze serie gaan we verder met het onderzoeken van Swift door collecties te bekijken.

Leer Swift

We hebben een complete gids samengesteld om je te helpen snel te leren, of je nu net begint met de basis of als je meer geavanceerde onderwerpen wilt verkennen.

Als je wilt leren hoe je Swift 3 kunt gebruiken om real-world apps te coderen, bekijk dan onze cursus Maak iOS-apps met Swift 3. Of je nu nieuw bent bij de ontwikkeling van iOS-apps of op zoek bent naar de overstap van Objective-C, deze Natuurlijk begin je met Swift voor app-ontwikkeling.