Swift adattípusok (példákkal)

Ebben az oktatóanyagban megismerheti a Swift programozási nyelv által támogatott különböző adattípusokat, és felhasználhatja azokat változó vagy konstans létrehozása közben.

Az adattípus az az adattípus (érték), amelyet egy változó vagy konstans tárolhat benne. Például a Swift Variables and Constants cikkben létrehozott egy változót és egy konstansot a string adatok memóriájában történő tárolásához.

Ezek az adatok lehetnek szövegek / karakterláncok ("Hello") vagy számok (12.45), vagy csak bitek (0 & 1). Az adattípus meghatározása biztosítja, hogy csak a meghatározott típusú adatot tárolja.

Nézzünk meg egy forgatókönyvet:

Tegyük fel, hogy játékot szeretne létrehozni. Mivel a legtöbb játék magas pontszámot és a játékos nevét jeleníti meg a játék befejezése után, ezt a két adatot kell tárolnia a játékához.

A magas pontszám egy szám (pl. 59), a játékos neve pedig egy húr (pl. Jack). Az adatok tárolásához két változót vagy állandót hozhat létre.

A Swiftben ezt úgy tehetjük meg, hogy a változókat és az adattípust a következőképpen deklaráljuk:

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

Itt deklaráltunk egy highScore változót, Intamely az 59 értéket tárolja. És a playerName változó, Stringamely Jack értékét tárolja.

Ha azonban ilyesmit csinál:

 var highScore: Int = "Jack"

Fordítási idő hibát kap, amely szerint a „String” típusú érték nem konvertálható a megadott „Int” típusra .

Ez azért van, mert az egész szám tárolására deklarálta a HighScore értéket, de karakterláncot helyezett el benne. Ez a hiba biztosítja, hogy a highScore csak számot tárolhat, a játékos nevét nem.

Adattípus mérete

Az adattípus másik fontos része a mérete. Ez adja meg az adott változóban vagy konstansban tárolható adatok méretét.

Egy típus méretét bitteként mérik, és legfeljebb 2 bit értéket képes tárolni . Ha nem tud a Bit-ről, gondoljon arra, hogy ez 0 vagy 1 érték.

Tehát egy Type size = 1 bit esetén csak upto, 2 1 = 2, két értéket képes tárolni : 0 vagy 1. Tehát egy betűs program 1 bites rendszere 0-t értelmezhet a / 0-ként, 1-et pedig b / 1.0.

 0 -> a vagy 0 1 -> b vagy 1

Hasonlóképpen, egy kétbites rendszer legfeljebb 2 2 = 4 értéket képes tárolni : (00,01,10,11), és mindegyik kombináció a következőképpen ábrázolható:

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

Bitrendszer esetén legfeljebb 2 n értéket képes tárolni benne.

Swift adattípusok

Az alábbiakban felsoroljuk a leggyakrabban használt gyors adattípusokat:

Bool

  • A Bool típusú változó / állandó kijelölt csak két értéket vagy truevagy tárolhat false.
  • Alapértelmezett érték : hamis
  • Gyakran használják, ha if-elsekimutatással dolgozik . Ha másképp, a cikk részletesen foglalkozik vele.

1. példa: Logikai adattípus

 let result:Bool = true print(result)

A program futtatásakor a kimenet a következő lesz:

 igaz

Egész szám

  • Az egész típusú változó / konstans deklarálhatja az egész számokat pozitív és negatív értékeket is, beleértve a nullát is, töredékkomponens nélkül.
  • Alapértelmezett érték : 0
  • Méret : 32/64 bit a platform típusától függ.
  • Tartomány :
    -2 147 483 648 - 2 147 483 647 (32 bites platform) -9223372036854775808 és 9223372036854775807 (64 bites platform)
  • Sok változatai Egész type.eg UInt, Int8, Int16stb A leggyakoribb egyik használata található Int.
  • Ha van egy követelmény, hogy adja meg a méretet / típusa integer változó / állandó fér, akkor tárolja azt pontosabban segítségével UInt, Int8, Int16stb ami fogunk felfedezni az alábbiakban.

2. példa: Egész adatok típusa

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

A program futtatásakor a kimenet a következő lesz:

 100 -100 

A fenti példában egy változó highScore típust deklaráltunk Int. Először 100-as értéket rendeltünk hozzá, így print(highScore)100-ot ad ki a képernyőn.

Később az értéket 100-ra változtattuk a hozzárendelés operátor használatával, highScore = -100így print(highScore)a képernyőn -100-ot adunk meg .

Fedezzük fel Inta Swift néhány típusváltozatát .

Int8

  • Az Egész szám típusa, amely pozitív és negatív kis számokat egyaránt képes tárolni.
  • Alapértelmezett érték : 0
  • Méret : 8 bit
  • Tartomány : -128 és 127 között

Egy Int8egész szám összesen 2 8 = (256) értéket tárolhat benne. azaz 0 és 255 közötti számokat képes tárolni?

Igen igazad van. De mivel Int8a pozitív és a negatív számokat egyaránt tartalmazza, számokat tárolhatunk -128 és 127 között, beleértve a 0-t is, ami összesen 256 értéket vagy számot tartalmaz.

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

A Swift függvények használatával .minés .maxbeépített funkcióival megtudhatja a legmagasabb és legalacsonyabb értéket is, amelyet egy típus tárolhat .

3. példa: Max és Min Int8 adattípus

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

A program futtatásakor a kimenet a következő lesz:

 -128 127

UInt

  • Egész szám típusú változat, az úgynevezett UInt (Unsigned Integer), amely csak előjel nélküli számokat képes tárolni (pozitív vagy nulla).
  • Alapértelmezett érték : 0
  • Méret : 32/64 bit a platform típusától függ.
  • Tartomány : 0-tól 4294967295-ig (32 bites platform)
    0-tól 18446744073709551615 (64 bites platform)

4. példa: UInt adattípus

 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.

10. példa: A Swift egy típusbiztos nyelv

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

A fenti kód hibát fog létrehozni, mert már megadtuk, hogy a playerName változó String lesz. Tehát nem tárolhatunk benne egész számot.

érdekes cikkek...