Λειτουργία επέκτασης Kotlin (με παραδείγματα)

Πίνακας περιεχομένων

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

Ας υποθέσουμε, πρέπει να επεκτείνετε μια τάξη με νέα λειτουργικότητα. Στις περισσότερες γλώσσες προγραμματισμού, είτε δημιουργείτε μια νέα τάξη είτε χρησιμοποιείτε κάποιο είδος σχεδιαστικού μοτίβου για να το κάνετε αυτό.

Ωστόσο, στο Koltin, μπορείτε επίσης να χρησιμοποιήσετε τη λειτουργία επέκτασης για να επεκτείνετε μια τάξη με νέες λειτουργίες. Βασικά, μια συνάρτηση επέκτασης είναι μια συνάρτηση μέλους μιας κλάσης που ορίζεται εκτός της κλάσης.

Για παράδειγμα, πρέπει να χρησιμοποιήσετε μια μέθοδο στην κλάση συμβολοσειρών που επιστρέφει μια νέα συμβολοσειρά με τον πρώτο και τον τελευταίο χαρακτήρα να αφαιρεθεί. αυτή η μέθοδος δεν είναι ήδη διαθέσιμη στην Stringτάξη. Μπορείτε να χρησιμοποιήσετε τη λειτουργία επέκτασης για να ολοκληρώσετε αυτήν την εργασία.

Παράδειγμα: Κατάργηση πρώτου και τελευταίου χαρακτήρα συμβολοσειράς

 fun String.removeFirstLastChar(): String = this.substring(1, this.length - 1) fun main(args: Array) ( val myString= "Hello Everyone" val result = myString.removeFirstLastChar() println("First character is: $result") )

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

 Ο πρώτος χαρακτήρας είναι: ello Everyon

Εδώ, μια συνάρτηση επέκτασης removeFirstLastChar ()προστίθεται στην Stringτάξη.

Το όνομα κλάσης είναι ο τύπος δέκτη ( Stringκλάση στο παράδειγμά μας). Η thisλέξη-κλειδί μέσα στη συνάρτηση επέκτασης αναφέρεται στο αντικείμενο του δέκτη.

Εάν πρέπει να ενσωματώσετε το Kotlin στην κορυφή του έργου Java, δεν χρειάζεται να τροποποιήσετε ολόκληρο τον κώδικα σε Koltin. Απλώς χρησιμοποιήστε συναρτήσεις επέκτασης για να προσθέσετε λειτουργίες.

Τούτου λεχθέντος, είναι αρκετά εύκολο να κάνετε κατάχρηση ισχύος των λειτουργιών επέκτασης. Σας συνιστούμε να ελέγξετε αυτούς τους πόρους για να μάθετε πότε να χρησιμοποιείτε επεκτάσεις και πότε όχι:

  • Είναι κακές οι μέθοδοι επέκτασης και οι ιδιότητες επέκτασης;
  • Πώς να κάνετε κατάχρηση λειτουργιών επέκτασης Kotlin;

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