Sobes.tech
Junior

შესაძლებელია თუ არა სტრუქტურის მემკვიდრეობა რამდენიმე მშობლისგან?

sobes.tech AI

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

نه. په Objective-C او Swift کې، جوړښتونه ډېرګوني وراثت ملاتړ نه کوي.

په Swift کې، جوړښتونه مهم امکانات لري، پشمول د پروتوکولونو، پراختیاوو، میتودونو، حساب شوي ملکیتونو، ذخیره شوي ملکیتونو او پیل کونکو سره.

خو، د ورته اهدافو ترلاسه کولو لپاره په Swift کې کارول کیږي:

  • پروتوکولونه: د غوښتنو یو مجموعه تعریفوي (میتودونه، ملکیتونه، پیل کونکي). یو ډول (جوړښت یا ټولګی) کولی شي یو یا څو پروتوکولونو سره سمون ولري، او له دې لارې یې "رفتار" ترلاسه کوي.

    // د پروتوکول مثال
    protocol Animal {
        var name: String { get }
        func makeSound()
    }
    
    // د پروتوکول سره سمون لرونکی جوړښت
    struct Dog: Animal {
        let name: String
    
        func makeSound() {
            print("هاو هاو!")
        }
    }
    
  • پراختیاوې (Extensions): د موجوده ډول نوې فعالیتونه زیاتوي، پرته له دې چې د هغې سرچینې کوډ بدل کړي.

    // د String لپاره د پراختیا مثال
    extension String {
        func reversedWords() -> String {
            let words = self.split(separator: " ")
            return words.reversed().joined(separator: " ")
        }
    }
    
    // د پراختیا کارول
    let sentence = "سلام نړۍ"
    print(sentence.reversedWords()) // نتیجه: نړۍ سلام
    

په Swift کې، ټولګي یوازې-وراثت لري له یوه والد ټولګي څخه، خو کولی شي څو پروتوکولونه پلي کړي.