Snelle gegevenstypen (met voorbeelden)

In deze zelfstudie leert u over verschillende gegevenstypen die de programmeertaal Swift ondersteunt en gebruikt u deze bij het maken van een variabele of constante.

Een gegevenstype is het type gegevens (waarde) dat een variabele of constante erin kan opslaan. In het artikel Swift Variables and Constants hebt u bijvoorbeeld een variabele en een constante gemaakt om stringgegevens in het geheugen op te slaan.

Deze gegevens kunnen een tekst / string ("Hallo") of een getal (12.45) of gewoon bits (0 & 1) zijn. Door het gegevenstype te definiëren, wordt gegarandeerd dat alleen het gedefinieerde type gegevens wordt opgeslagen.

Laten we naar een scenario kijken:

Stel dat u een spel wilt maken. Aangezien de meeste spellen een hoge score en de naam van de speler weergeven nadat het spel is afgelopen, moet u deze twee gegevens voor uw spel opslaan.

De hoogste score is een nummer (bijvoorbeeld 59) en de naam van de speler een string (bijvoorbeeld Jack). U kunt twee variabelen of constanten maken om de gegevens op te slaan.

In Swift kan dit worden gedaan door variabelen en het gegevenstype te declareren als:

 var highScore: Int = 59 var playerName: String = "Jack"

Hier hebben we de highScore-variabele van het type gedeclareerd Intdat waarde 59 opslaat. En playerName-variabele van het type Stringdat de waarde Jack opslaat.

Als u echter zoiets als dit doet:

 var highScore: Int = "Jack"

U krijgt een compilatietijdfout waarin staat dat de waarde van het type 'String' niet kan worden geconverteerd naar het opgegeven type 'Int' .

Het is omdat je highScore hebt verklaard om de gehele waarde op te slaan, maar er een string in hebt geplaatst. Deze fout zorgt ervoor dat highScore alleen een nummer kan opslaan en niet de naam van de speler.

Grootte van een gegevenstype

Een ander belangrijk onderdeel van een gegevenstype is de grootte. Dit specificeert de grootte van gegevens die in een bepaalde variabele of constante kunnen worden opgeslagen.

De grootte van een type wordt gemeten in termen van bits en kan waarden tot 2 bits opslaan . Als u Bit niet kent, beschouw het dan als een waarde die 0 of 1 is.

Dus voor een Type size = 1 bit, kan het slechts tot, 2 1 = 2, twee waarden opslaan : ofwel 0 of 1. Dus een 1 bit systeem voor een letterprogramma kan 0 interpreteren als a / 0 en 1 als b / 1.0.

 0 -> a of 0 1 -> b of 1

Evenzo kan een twee-bits systeem tot 2 2 = 4 waarden opslaan : (00,01,10,11) en elke combinatie kan worden weergegeven als:

 00 -> a of 0 01 -> b of 1 11 -> c of 2 10 -> d of 3

Voor een bitsysteem kan het er maximaal 2 n waarden in opslaan .

Snelle gegevenstypen

De meest voorkomende gegevenstypen die in swift worden gebruikt, worden hieronder vermeld:

Bool

  • Variabele / Constant verklaard Bool type kan slechts twee waarden ofwel op te slaan trueof false.
  • Standaardwaarde : false
  • Het wordt vaak gebruikt wanneer u met if-elsestatement werkt. Swift if else artikel behandelt het in detail.

Voorbeeld 1: Booleaans gegevenstype

 let result:Bool = true print(result)

Wanneer u het programma uitvoert, is de uitvoer:

 waar

Geheel getal

  • Variabele / constante gedeclareerd van het type integer kan hele getallen opslaan, zowel positief als negatief, inclusief nul zonder fractionele componenten.
  • Standaardwaarde : 0
  • Grootte : 32/64 bit, afhankelijk van het type platform.
  • Bereik : -2.147.483.648 tot 2.147.483.647 (32 bit platform)
    -9223372036854775808 tot 9223372036854775807 (64 bit platform
  • Er zijn vele varianten van Integer type.eg UInt, Int8, Int16etc. De meest voorkomende je gebruikt is Int.
  • Als u een eis om de grootte / type integer een variabele / constante kan houden opgeeft, kunt u opslaan meer in het bijzonder het gebruik van UInt, Int8, Int16etc. die we gaan hieronder te verkennen.

Voorbeeld 2: gegevenstype geheel getal

 var highScore:Int = 100 print(highScore) highScore = -100 print(highScore) 

Wanneer u het programma uitvoert, is de uitvoer:

 100-100 

In het bovenstaande voorbeeld hebben we een variabele highScore van het type gedeclareerd Int. Eerst hebben we het een waarde van 100 toegewezen, zodat er print(highScore)100 op het scherm wordt weergegeven.

Later hebben we de waarde gewijzigd in -100 met behulp van de toewijzingsoperator, highScore = -100zodat print(highScore)-100 in het scherm wordt weergegeven.

Laten we enkele varianten van Inttype in Swift bekijken.

Int8

  • Variant van het type Integer die zowel positieve als negatieve kleine getallen kan opslaan.
  • Standaardwaarde : 0
  • Grootte : 8 bit
  • Bereik : -128 tot 127

Een Int8geheel getal kan er in totaal 28 = (256) waarden in opslaan . dwz het kan nummers opslaan van 0 tot 255 toch?

Yes, you are correct. But since, Int8 includes both positive and negative numbers we can store numbers from -128 to 127 including 0 which totals to 256 values or numbers.

 var highScore:Int8 = -128//ok highScore = 127 //ok highScore = 128 // error here highScore = -129 //error here 

You can also find out the highest and lowest value a type can store using .min and .max built in Swift functions.

Example 3: Max and Min Int8 data type

 print(Int8.min) print(Int8.max) 

When you run the program, the output will be:

 -128 127

UInt

  • Variant of Integer type called UInt (Unsigned Integer) which can only store unsigned numbers (positive or zero).
  • Default Value: 0
  • Size: 32/64 bit depends on the platform type.
  • Range: 0 to 4294967295 (32 bit platform)
    0 to 18446744073709551615 (64 bit platform)

Example 4: UInt data type

 var highScore:UInt = 100 highScore = -100//compile time error when trying to 

The above code will give you a compile time error because a Unsigned Integer can only store either 0 or a positive value. Trying to store a negative value in an Unsigned Integer will give you an error.

Float

  • Variables or Constants declared of float type can store number with decimal or fraction points.
  • Default Value: 0.0
  • Size: 32 bit floating point number.
  • Range: 1.2*10-38 to 3.4 * 1038 (~6 digits)

Example 5: Float data type

 let highScore:Float = 100.232 print(highScore) 

When you run the program, the output will be:

 100.232

Double

  • Variables / Constants declared of Double type also stores number with decimal or fraction points as Float but larger decimal points than Float supports.
  • Default value : 0.0
  • Size: 64-bit floating point number. (Therefore, a variable of type Double can store number with decimal or fraction points larger than Float supports)
  • Range: 2.3*10-308 to 1.7*10308 (~15 digits)

Example 6: Double data type

 let highScore:Double = 100.232321212121 print(highScore) 

When you run the program, the output will be:

 100.232321212121

Character

  • Variables/Constants declared of Character type can store a single-character string literal.
  • You can include emoji or languages other than english as an character in Swift using escape sequence u(n) (unicode code point ,n is in hexadecimal).

Example 7: Character data type

 let playerName:Character = "J" let playerNameWithUnicode:Character = "u(134)" print(playerName) print(playerNameWithUnicode) 

When you run the program, the output will be:

 J Ĵ

String

  • Variables or Constants declared of String type can store collection of characters.
  • Default Value: "" (Empty String)
  • It is Value type. See Swift value and Reference Type .
  • You can use for-in loop to iterate over a string. See Swift for-in loop.
  • Swift also supports a few special escape sequences to use them in string. For example,
    • (null character),
    • \ (a plain backslash ),
    • (a tab character),
    • v (a vertical tab),
    • (carriage return),
    • " (double quote),
    • \' (single quote), and
    • u(n) (unicode code point ,n is in hexadecimal).

Example 8: String data type

 let playerName = "Jack" let playerNameWithQuotes = " "Jack "" let playerNameWithUnicode = "u(134)ack" print(playerName) print(playerNameWithQuotes) print(playerNameWithUnicode) 

When you run the program, the output will be:

 Jack "Jack" Ĵack 

See Swift characters and strings to learn more about characters and strings declaration, operations and examples.

In addition to this data types, there are also other advanced data types in Swift like tuple, optional, range, class, structure etc. which you will learn in later chapters.

Things to remember

1. Since Swift is a type inference language, variables or constants can automatically infer the type from the value stored. So, you can skip the type while creating variable or constant. However you may consider writing the type for readability purpose but it’s not recommended.

Example 9: Type inferred variable/constant

 let playerName = "Jack" print(playerName) 

Swift compiler can automatically infer the variable to be of String type because of its value.

2. Swift is a type safe language. If you define a variable to be of certain type you cannot change later it with another data type.

Voorbeeld 10: Swift is een type veilige taal

 let playerName:String playerName = 55 //compile time error 

De bovenstaande code zal een fout veroorzaken omdat we al hebben gespecificeerd dat de variabele playerName een String zal zijn. We kunnen er dus geen geheel getal in opslaan.

Interessante artikelen...