Ένθετες συναρτήσεις στο Swift (με παραδείγματα)

Σε αυτό το άρθρο, θα μάθετε για ένθετες συναρτήσεις στο Swift και πώς λειτουργεί με παραδείγματα.

Εάν υπάρχει μια συνάρτηση μέσα στο σώμα μιας άλλης λειτουργίας, ονομάζεται ένθετη συνάρτηση.

Σύνταξη μιας ένθετης συνάρτησης

 func funcname () (// δηλώσεις εξωτερικής συνάρτησης func anotherFuncname () (// δηλώσεις εσωτερικής λειτουργίας)) 

Εδώ, η λειτουργία anotherFuncnameβρίσκεται μέσα στο σώμα μιας άλλης λειτουργίας funcname.

Πρέπει να σημειωθεί ότι, οι εσωτερικές λειτουργίες μπορούν να κληθούν και να χρησιμοποιηθούν μόνο εντός της λειτουργίας κλεισίματος (εξωτερική λειτουργία).

Παράδειγμα 1: Ένθετη συνάρτηση χωρίς τιμές επιστροφής

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

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

Γειά σου! Γρύλος

Στο παραπάνω πρόγραμμα, η ένθετη συνάρτηση addGreetingAndPrint()καλείται από τη συνάρτηση κλεισίματος outputMessageByGreeting().

Η δήλωση outputMessageByGreeting("Jack")καλεί την εξωτερική συνάρτηση. Και η δήλωση addGreetingAndPrint()μέσα στην εξωτερική λειτουργία καλεί τη μέθοδο που εξάγει Γεια! Τζακ στην κονσόλα.

Δεν μπορείτε να καλέσετε τη συνάρτηση 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 στην κονσόλα.

ενδιαφέροντα άρθρα...