English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

الوظائف المدمجة Swift

في هذا المقال، ستعلم Swift وظائف المدمجة وكيفية استخدامها مع أمثلة.

إذا كان هناكالوظيفةتسمى وظيفة موجودة داخل جسم وظيفة أخرى بـ "وظيفة مدمجة".

نحو وظائف مدمجة

func funcname() {
    //جملة وظيفة خارجية
    func anotherFuncname() {
        //جملة وظيفة داخلية
    

في هذا السياق، وظيفة anotherFuncname تقع داخل جسم وظيفة funcname.

يجب الانتباه إلى أن الوظائف الداخلية يمكن استخدامها وتطبيقها فقط داخل الوظيفة المدمجة (الوظيفة الخارجية).

مثال1: وظائف مدمجة بدون نتائج

func outputMessageByGreeting(_ message: String) {
    
    func addGreetingAndPrint() {
        print("Hello! \(message)")
    
    addGreetingAndPrint()

outputMessageByGreeting("Jack")

عند تشغيل البرنامج، الناتج هو:

Hello! Jack

في البرنامج المذكور أعلاه، تم استدعاء وظيفة مدمجة addGreetingAndPrint() من وظيفة outputMessageByGreeting().

استدعاء الجملة outputMessageByGreeting("Jack") وظيفة خارجية. استدعاء الجملة addGreetingAndPrint() في الجملة الخارجية وظيفة outputMessageByGreeting() ينشط إصدار Hello Jack!

لا يمكنك استدعاء وظيفة addGreetingAndPrint خارج وظيفة outputMessageByGreeting.

مثال2: وظائف مدمجة تحتوي على معلمات ونتائج

الوظائف المدمجة يمكن أن تحتوي على وظائف تحتوي على معلمات ونتائج.

func operate(with symbol: String) -> (Int, Int) -> Int {
    
    func add(num1: Int, num2: Int) -> Int {
        return num1 + num2
    
    
    func subtract(num1: Int, num2: Int) -> Int {
        return num1 - num2
    
    let operation = (symbol == "+") ? add : subtract
    return operation

let operation = operate(with: "+")
let result = operation(2, 3)
print(result)

عند تشغيل البرنامج، الناتج هو:

5

في البرنامج المذكور أعلاه،

  • الوظيفة الخارجية هي operate()، النوع هو Function (Int,Int) -> Int.

  • الدوال الداخلية (المدمجة) هي add() وsubtract().

يتم استخدام الطريقة المدمجة للوظائف add() وsubtract() خارج الوظيفة المحكمة المدمجة operate(). هذا ممكن لأن الوظيفة الخارجية تعود إحدى هذه الوظائف.

لقد استخدمنا الدوال الداخلية للوظيفة المحكمة operate() خارجياً كـ operation(2,3). يتم استدعاء add(2,3) داخل البرنامج، ويتم إدخال 5 في الشاشة.