Sobes.tech
Middle

Масивҳо дар забони Swift чӣ гуна сохта шудаанд?

sobes.tech AI

Ҷавоб аз AI

Масивҳо дар Swift маҷмӯаҳои тартибдодашудаи унсурҳои як навъро намояндагӣ мекунанд. Онҳо навъҳои арзишӣ (структураҳо) мебошанд, баръакс аз NSArray дар Objective-C.

Хусусиятҳои асосӣ:

  • Бехатарии навъ: Масивҳо танҳо унсурҳои як навъро доранд. кӯшиши илова кардани унсури навъи дигар хатогии компилятсияро ба вуҷуд меорад.
  • Тартиб: Унсурҳо дар як пайдарпайии муайян нигоҳ дошта мешаванд ва ба онҳо тавассути индекс, аз 0 оғоз карда, дастрасӣ кардан мумкин аст.
  • Тавоноии тағирёбӣ: Масивҳо метавонанд тағирёбанда бошанд (агар бо var эълон шаванд) ё тағирнопазир (агар бо let эълон шаванд).
  • Навъи арзиш: Вақте ки масив ба тағирёбандаи нав ё ба функсия дода мешавад, нусха гирифта мешавад (copy-on-write). Ин маъно дорад, ки тағирот дар нусха ба оригинал таъсир намерасонад, то даме ки тағироти воқеӣ анҷом дода шавад, ки ин самаранокии иҷроиро беҳтар мекунад.

Амалиётҳои асосӣ:

  • Эҷод:

    // Масив холӣ
    var emptyArray: [Int] = []
    // Масив бо арзишҳои ибтидоӣ
    var numbers = [1, 2, 3]
    
  • Дастрасӣ ба унсурҳо:

    let firstElement = numbers[0]
    
  • Илова кардани унсурҳо:

    numbers.append(4)
    numbers += [5, 6]
    
  • Баъд аз он, ки унсурҳоро хориҷ кардан:

    numbers.remove(at: 0)
    numbers.removeLast()
    
  • Итератсия:

    for number in numbers {
        print(number)
    }
    
  • Гирифтани шумораи унсурҳо:

    let count = numbers.count
    

Масивҳо методҳои муфидро, ба монанди filter, map, reduce, барои трансформатсияҳои функсионалӣ дастгирӣ мекунанд.