Sobes.tech
Intern

Məlumat tipləri nədir və hansıları mövcuddur?

sobes.tech Süni İntellekt

AI-dan cavab

Verilən növləri mümkün dəyərlər toplusunu və üzərində edilə biləcək əməliyyatları müəyyən edir. Swift-də onlar Dəyər Növləri və Referans Növlərinə bölünür.

Dəyər Növləri:

  • Dəyərlər təyin etmə və ya funksiyaya ötürmə zamanı kopyalanır.
  • Hər dəyişən və ya sabit öz müstəqil dəyər nüsxəsini saxlayır.
  • Bir nüsxədəki dəyişikliklər digərinə təsir etmir.

Dəyər Nümunələri:

  • Struktur (struct)
  • Siyahılar (enum)
  • Tuple-lar (tuple)
  • Əsas növlər: Int, Double, Bool, String, massivlər (Array), lüğətlər (Dictionary), dəstələr (Set).
// Dəyər Nümunəsi: struct
struct Point {
    var x: Int
    var y: Int
}

var p1 = Point(x: 1, y: 2)
var p2 = p1 // p2 p1-in nüsxəsini alır
p2.x = 10 // p2-də dəyişiklik p1-ə təsir etmir

print("p1: \(p1)") // p1: Point(x: 1, y: 2)
print("p2: \(p2)") // p2: Point(x: 10, y: 2)

Referans Növləri:

  • Dəyərlər kopyalanmır. Təyin etmə və ya ötürmə zamanı
  • eyni yaddaşda olan məlumat nümunəsinə istinad edən əlaqə ötürülür.
  • Bir neçə dəyişən və ya sabit eyni nümunəyə istinad edə bilər.
  • Bir əlaqə vasitəsilə edilən dəyişikliklər bütün digər əlaqələrdə görünür.

Referans Nümunələri:

  • Siniflər (class)
  • Funksiyalar (func)
  • Bağlamalar (closure)
// Referans Nümunəsi: class
class Circle {
    var radius: Double

    init(radius: Double) {
        self.radius = radius
    }
}

var c1 = Circle(radius: 5.0)
var c2 = c1 // c2 eyni nümunəyə istinad edir
c2.radius = 10.0 // Dəyişiklik c2-də c1-ə təsir edir

print("c1 radius: \(c1.radius)") // c1 radius: 10.0
print("c2 radius: \(c2.radius)") // c2 radius: 10.0

Əsas növlər cədvəli:

Kateqoriya Növ(lər) Dəyər/Referans Növü Təsviri
Tam ədədlər Int, UInt, Int8, UInt8 və s. Dəyər Müxtəlif ölçülü, işarəli və işarəsiz tam ədədlər
Onluq ədədlər Float, Double Dəyər Onluq hissəsi olan ədədlər
Booleanlar Bool Dəyər Məntiqi dəyərlər (true və ya false)
Sətirlər String Dəyər Simvol ardıcıllığı
Kolleksiyalar Array, Dictionary, Set Dəyər Təyin olunmuş və ya təyin olunmamış, eyni tipli elementlərdən ibarət kolleksiyalar
Struktur Növləri struct Dəyər Bir neçə əlaqəli dəyəri saxlayan istifadəçi tərəfindən yaradılan tiplər
Siyahılar enum Dəyər Əlaqəli dəyərlər qrupu üçün ümumi təriflər
Tuple-lar (value1, value2, ...) Dəyər Bir neçə dəyəri birləşdirən tiplər
Siniflər class Referans Mövcud olan istifadəçi tərəfindən yaradılan tiplər, irsiyyət və referans davranışını dəstəkləyir
Funksiyalar () -> Void, (Int) -> String və s. Referans İcra olunan kod blokları
Bağlamalar { (parameters) -> return type in code } Referans Öz-özünə yetərli kod blokları, ötürülə və istifadə oluna bilər
Seçimlər Type? (sintaktik şəkər Optional<Type> üçün) Dəyər Type tipində dəyər və ya onun olmaması (nil) göstərir

Dəyər və Referans Növləri arasında seçim vəzifədən asılıdır: Dəyər Növləri kiçik məlumatlar və çoxnüvəli təhlükəsizlik üçün üstünlük təşkil edir, Referans Növləri isə ümumi vəziyyət və irsiyyət tələb edən mürəkkəb obyektlər üçün uyğundur.