Κλήση συνάρτησης Kotlin χρησιμοποιώντας συμβολισμό Infix

Σε αυτό το άρθρο, θα μάθετε να χρησιμοποιείτε το συμβολισμό infix για να καλέσετε μια συνάρτηση στο Kotlin (με τη βοήθεια παραδειγμάτων).

Πριν μάθετε πώς να δημιουργήσετε μια συνάρτηση με σημείωση infix, ας εξερευνήσουμε δύο κοινά χρησιμοποιούμενες συναρτήσεις infix.

Όταν χρησιμοποιείτε ||και &&λειτουργείτε, ο μεταγλωττιστής αναζητά ή / και λειτουργεί αντίστοιχα και τους καλεί κάτω από την κουκούλα.

Αυτές οι δύο λειτουργίες υποστηρίζουν το συμβολισμό infix.

Παράδειγμα: Kotlin ή & και λειτουργία

 fun main(args: Array) ( val a = true val b = false var result: Boolean result = a or b // a.or(b) println("result = $result") result = a and b // a.and(b) println("result = $result") )

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

 αποτέλεσμα = αληθινό αποτέλεσμα = λάθος

Στο παραπάνω πρόγραμμα, a or bαντί για a.or(b), και a and bαντί a.and(b)χρησιμοποιείται. Ήταν εφικτό επειδή αυτές οι δύο λειτουργίες υποστηρίζουν τη σημείωση infix.

Πώς να δημιουργήσετε μια συνάρτηση με συμβολισμό infix;

Μπορείτε να πραγματοποιήσετε μια κλήση συνάρτησης στο Kotlin χρησιμοποιώντας συμβολισμό infix εάν η συνάρτηση

  • είναι μια συνάρτηση μέλους (ή μια συνάρτηση επέκτασης).
  • έχει μόνο μία μόνο παράμετρο.
  • επισημαίνεται με infixλέξη-κλειδί.

Παράδειγμα: Λειτουργία καθορισμένη από τον χρήστη με συμβολισμό Infix

 class Structure() ( infix fun createPyramid(rows: Int) ( var k = 0 for (i in 1… rows) ( k = 0 for (space in 1… rows-i) ( print(" ") ) while (k != 2*i-1) ( print("* ") ++k ) println() ) ) ) fun main(args: Array) ( val p = Structure() p createPyramid 4 // p.createPyramid(4) )

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

  * * * * * * * * * * * * * * * * 

Εδώ, createPyramid()είναι μια συνάρτηση infix που δημιουργεί μια δομή πυραμίδας. Είναι μια συνάρτηση μέλους της κλάσης Structure, παίρνει μόνο μία παράμετρο τύπου Intκαι ξεκινά με λέξη-κλειδί infix.

Ο αριθμός των σειρών της πυραμίδας εξαρτάται από το όρισμα που μεταβιβάστηκε στη συνάρτηση.

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