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.