Sobes.tech
Junior

Чӣ гуна метавон дар забони барномасозии Swift ба сатр итерировать кард?

sobes.tech AI

Ҷавоб аз AI

Swiftда сатрда такрорлашнинг бир нечта усуллари мавжуд:

  1. Белгилор (Characters) орқали:

    let myString = "Hello"
    for character in myString {
        // Алоҳида белгини ишлаш
        print(character)
    }
    
  2. Unicode скалари (Unicode Scalars) орқали:

    let myString = "Hello"
    for scalar in myString.unicodeScalars {
        // Unicode скалари ишлаш
        print(scalar)
    }
    
  3. UTF-8 кўринишлари (UTF8View):

    let myString = "Hello"
    for utf8CodeUnit in myString.utf8 {
        // UTF-8 код бирлиги ишлаш
        print(utf8CodeUnit)
    }
    
  4. UTF-16 кўринишлари (UTF16View):

    let myString = "Hello"
    for utf16CodeUnit in myString.utf16 {
        // UTF-16 код бирлиги ишлаш
        print(utf16CodeUnit)
    }
    
  5. Индекслер ( String.Index ) орқали: Бу усул кўпроқ мураккаб, чунки белгилар хотирада турли узунликда бўлиши мумкин.

    let myString = "Hello"
    var currentIndex = myString.startIndex
    while currentIndex != myString.endIndex {
        let character = myString[currentIndex]
        // Индекс орқали белгини ишлаш
        print(character)
        currentIndex = myString.index(after: currentIndex)
    }
    

Тўғри усул танлаш вазифага боғлиқ:

  • for character in myString: График кластерлар (белгилор) бўйича такрорлаш — энг кўп учрайдиган ҳолат.
  • unicodeScalars ва UTF кўринишлари: Unicodeда пастки даражадаги тасвир билан ишлаш учун қўлланилади.
  • Индекслер бўйича такрорлаш: Агар сиз аниқ бир индексда белгини ёки кичик матнни олишни хоҳласангиз ёки диапазонлар билан ишлашингиз керак бўлса, қўлланилади.