Swift Veri Türleri (Örneklerle)

Bu eğitimde, Swift programlama dilinin desteklediği farklı veri türleri hakkında bilgi edinecek ve bir değişken veya sabit oluştururken bunu kullanacaksınız.

Bir veri türü, bir değişken veya sabitin içinde saklayabileceği veri türüdür (değer). Örneğin, Swift Değişkenleri ve Sabitleri makalesinde, dize verilerini bellekte saklamak için bir değişken ve bir sabit oluşturdunuz.

Bu veriler bir metin / dize ("Merhaba") veya bir sayı (12.45) veya sadece bitler (0 ve 1) olabilir. Veri tipinin tanımlanması, sadece tanımlanan veri tipinin saklanmasını sağlar.

Bir senaryoya bakalım:

Bir oyun oluşturmak istediğinizi varsayalım. Çoğu oyun, oyun tamamlandıktan sonra yüksek puan ve oyuncunun adını gösterdiğinden, oyununuz için bu iki veriyi saklamanız gerekir.

Yüksek puan bir sayıdır (örn. 59) ve oyuncunun adı bir dizedir (örn. Jack). Verileri saklamak için iki değişken veya sabit oluşturabilirsiniz.

Swift'de bu, değişkenleri ve veri türünü şu şekilde bildirerek yapılabilir:

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

Burada, Int59 değerini saklayan tipte highScore değişkenini tanımladık . Ve StringJack değerini depolayan tipte playerName değişkenini .

Ancak, böyle bir şey yaparsanız:

 var highScore: Int = "Jack"

'String' türündeki değerin belirtilen 'Int' türüne dönüştürülemeyeceğini belirten bir derleme zamanı hatası alacaksınız .

Bunun nedeni, tamsayı değerini depolamak için yüksek Puan vermiş olmanız ancak içine dize yerleştirmenizdir. Bu hata, highScore'un oyuncunun adını değil yalnızca bir numarayı saklayabilmesini sağlar.

Veri Türünün Boyutu

Bir veri türünün bir diğer önemli kısmı, boyutudur. Bu, belirli bir değişkende veya sabitte saklanabilecek verilerin boyutunu belirtir.

Bir Tipin boyutu bit cinsinden ölçülür ve 2 bite kadar değerleri saklayabilir . Bit'i bilmiyorsanız, 0 veya 1 olan bir değer olarak düşünün.

Dolayısıyla, bir Tür boyutu = 1 bit için, en fazla 2 1 = 2, iki değer saklayabilir : 0 veya 1. Dolayısıyla, bir harf programı için 1 bitlik bir sistem, 0'ı a / 0 ve 1'i b / olarak yorumlayabilir. 1.0.

 0 -> a veya 0 1 -> b veya 1

Benzer şekilde, iki bitlik bir sistem en fazla 2 2 = 4 değer saklayabilir : (00,01,10,11) ve her kombinasyon şu şekilde temsil edilebilir:

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

Bir bit sistemi için, içinde maksimum 2 n değer saklayabilir .

Swift Veri Türleri

Swift'de kullanılan en yaygın veri türleri aşağıda listelenmiştir:

Bool

  • Bool türünün Değişken / Sabit olarak bildirilmesi, trueveya yalnızca iki değeri depolayabilir false.
  • Varsayılan Değer : yanlış
  • İfade ile çalışırken sıklıkla kullanılır if-else. Swift eğer başka bir makale bu konuda ayrıntılı olarak ele alıyor.

Örnek 1: Boolean veri türü

 let result:Bool = true print(result)

Programı çalıştırdığınızda, çıktı:

 doğru

Tamsayı

  • Tamsayı türünde Değişken / Sabit, sıfır dahil olmak üzere hem pozitif hem de negatif tam sayıları kesirli bileşen olmadan depolayabilir.
  • Varsayılan Değer : 0
  • Boyut : 32/64 bit, platform türüne bağlıdır.
  • Aralık : -2.147.483.648 - 2.147.483.647 (32 bit platform)
    -9223372036854775808 - 9223372036854775807 (64 bit platform
  • Tamsayı type.eg birçok varyasyonu vardır UInt, Int8, Int16vb kullandığınız en yaygın olanı taşımaktadır Int.
  • Eğer bir değişken / sabit tutabilir tamsayı büyüklüğü / türünü belirtmek için bir gereksinim varsa, daha spesifik olarak kullanarak saklayabilir UInt, Int8, Int16vb aşağıda keşfetmeye gidiyoruz hangi.

Örnek 2: Tamsayı veri türü

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

Programı çalıştırdığınızda, çıktı:

 100 -100 

Yukarıdaki örnekte highScore türünde bir değişken tanımladık Int. İlk olarak, 100 değerini print(highScore)atadık, böylece ekranda 100 çıktılar.

Daha sonra biz atama operatörünü kullanarak -100 değer değiştirdi highScore = -100, bu yüzden print(highScore)çıkışlarını -100 ekranında.

Swift'deki bazı tür çeşitlerini inceleyelim Int.

Int8

  • Hem pozitif hem de negatif küçük sayıları depolayabilen Tamsayı türü varyantı.
  • Varsayılan Değer : 0
  • Boyut : 8 bit
  • Aralık : -128 ila 127

Bir Int8tamsayı, içinde toplam 2 8 = (256) değer saklayabilir . yani 0'dan 255'e kadar sayıları saklayabilir değil mi?

Evet haklısın. Ancak Int8hem pozitif hem de negatif sayıları içerdiğinden, 256 değer veya sayıya kadar olan 0 dahil olmak üzere -128'den 127'ye kadar olan sayıları saklayabiliriz.

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

Ayrıca bir tür kullanarak saklayabilir yüksek ve en düşük değeri öğrenebilirsiniz .minve .maxSwift fonksiyonları yerleşik.

Örnek 3: Maks ve Min Int8 veri türü

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

Programı çalıştırdığınızda, çıktı:

 -128 127

UInt

  • Yalnızca işaretsiz sayıları (pozitif veya sıfır) depolayabilen UInt (Unsigned Integer) adlı Tamsayı türünün varyantı.
  • Varsayılan Değer : 0
  • Boyut : 32/64 bit, platform türüne bağlıdır.
  • Aralık : 0 ila 4294967295 (32 bit platform)
    0 ila 18446744073709551615 (64 bit platform)

Örnek 4: UInt veri türü

 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.

Örnek 10: Swift, tür güvenli bir dildir

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

Yukarıdaki kod bir hata oluşturacaktır çünkü playerName değişkeninin bir String olacağını zaten belirtmiştik. Bu yüzden içinde bir Tamsayı saklayamayız.

Ilginç makaleler...