Sobes.tech
Junior

რა არის wrapped?

sobes.tech AI

პასუხი AI-სგან

wrapped - ეს არის მნიშვნელობა ტიპის ოპციონალიდან წარმატებით unwrapping-ის შემდეგ. ოპციონალი Optional<<Wrapped>> ან შეიცავს მნიშვნელობას Wrapped ტიპის, ან nil. Unwrapping-ი საშუალებას აძლევს მიაღწიო Wrapped მნიშვნელობას, თუ ის არსებობს.

მოჩვენებები unwrapping-ის:

  1. მძიმე unwrapping (Force unwrapping) !:

    var optionalString: String? = "Hello"
    let unwrappedString = optionalString! // იღებს მნიშვნელობას "Hello"
    // თუ optionalString == nil, მოხდება შეცდომა
    
  2. ოპციონალური დაკავშირება (Optional binding) if let ან guard let:

    var anotherOptionalString: String? = "World"
    if let guaranteedString = anotherOptionalString {
        // ამ ბლოკის შიგნით, guaranteedString არის `String` (unwrapped)
        print(guaranteedString)
    }
    
  3. ოპციონალური ჯაჭვი (Optional chaining) ?:

    class MyClass { var property: String? }
    var instance: MyClass? = MyClass()
    instance?.property = "Value" // თუ instance არ არის nil, თვისება განისაზღვრება
    let retrievedValue = instance?.property // retrievedValue იქნება String?
    
  4. ნული გაერთიანების ოპერატორი (Nil-coalescing operator) ??:

    var yetAnotherOptionalString: String? = nil
    let defaultValue = yetAnotherOptionalString ?? "Default" // defaultValue იქნება "Default" (String)
    // თუ yetAnotherOptionalString მნიშვნელობა ჰქონდა, ის გამოიყენებოდა როგორც unwrapped
    

Swift-ის კონტექსტში, wrapped მნიშვნელობა პირდაპირ ის არის, რაც "შიგნით" იყო ოპციონალამდე მისი დამუშავების წინ.