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

Άποψη: 28269|Απάντηση: 1

[Πηγή] Η χρήση πλειάδων στην Java

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 31/8/2021 11:22:41 π.μ. | | | |
Οι πλειάδες έχουν ιδιαίτερη σημασία στον τομέα των υπολογιστών, αυτό το όνομα μπορεί να ακούγεται λίγο άγνωστο και βασικά δεν υπάρχουν σενάρια εφαρμογής στη σύνταξη κώδικα, ωστόσο, παραδόξως, οι πλειάδες σχετίζονται στενά με τον προγραμματισμό, ορισμένοι μαθητές μπορεί να μην γνωρίζουν ότι ένα άλλο ακαδημαϊκό όνομα για "εγγραφές" σε σχεσιακές βάσεις δεδομένων είναι "πλειάδες", μια εγγραφή είναι μια πλειάδα, ένας πίνακας είναι μια σχέση, οι εγγραφές αποτελούνται από πίνακες, οι πλειάδες δημιουργούν σχέσεις, αυτή είναι η βασική έννοια των σχεσιακών βάσεων δεδομένων.

Οι πλειάδες είναι αναπόσπαστο μέρος μιας σχεσιακής βάσης δεδομένων, αλλά δεν είναι τόσο απαραίτητες στον προγραμματισμό. Ορισμένες γλώσσες προγραμματισμού έχουν τη δική τους σύνταξη πλειάδας, όπως python, F#, haskell, scala κ.λπ., ενώ άλλες είναι πιο δημοφιλείς αλλά δεν έχουν σύνταξη πλειάδας, όπως Java, JavaScript, C++, C# κ.λπ.

Οι πλειάδες δεν είναι απαραίτητα στοιχεία προγραμματισμού όπως πίνακες και αντικείμενα, αλλά η χρήση τους μπορεί να είναι πολύ βολική για τη σύνταξη κώδικα, ειδικά όταν μια συνάρτηση χρειάζεται να επιστρέψει πολλές τιμές. Σε αυτήν την περίπτωση, η κοινή πρακτική είναι να ορίσετε ένα αντικείμενο, να ορίσετε την τιμή που πρέπει να επιστρέψει η συνάρτηση ως χαρακτηριστικό του αντικειμένου και, στη συνέχεια, να ορίσετε τον τύπο επιστρεφόμενης τιμής της συνάρτησης στον τύπο του αντικειμένου. Ή μπορείτε να ζητήσετε από αυτή τη συνάρτηση να επιστρέψει μια δομή δεδομένων χάρτη στην οποία υπάρχουν τα συγκεκριμένα δεδομένα. Ωστόσο, και οι δύο προσεγγίσεις έχουν τα ελαττώματά τους και η πρώτη μέθοδος είναι αξιόπιστη, αλλά ο κώδικας είναι ασυνήθιστα φουσκωμένος. Οι ίδιες οι απαιτήσεις είναι πολύ απλές, εφόσον η συνάρτηση επιστρέφει πολλαπλές τιμές, αλλά αυτή η μέθοδος απαιτεί τον ορισμό ενός τύπου εκ των προτέρων, στη συνέχεια τη δημιουργία του, στη συνέχεια τον ορισμό των ιδιοτήτων του στιγμιότυπου και, τέλος, την επιστροφή, κάτι που είναι πολύ αναποτελεσματικό. Αν και η δεύτερη μέθοδος είναι γρήγορη, αλλά όχι αρκετά ασφαλής, μέσα στη συνάρτηση μπορεί να γνωρίζει τι είδους τιμή είναι αποθηκευμένη στον χάρτη, αλλά εκτός της συνάρτησης, να γνωρίζετε μόνο ότι η επιστρεφόμενη τιμή αυτής της συνάρτησης είναι ένας χάρτης, όσο για το ποιες τιμές αποθηκεύονται στον χάρτη, ποιος τύπος δεν είναι γνωστός, σε έργα ανάπτυξης πολλών ατόμων Αυτό το μειονέκτημα είναι ιδιαίτερα προφανές, δυστυχώς αυτή η πρακτική είναι η προτιμώμενη λύση σε ορισμένες γλώσσες με δυναμικούς τύπους, κάτι που είναι επίσης ένας από τους θεμελιώδεις λόγους για τους οποίους οι γλώσσες με δυναμικούς τύπους παραπονιούνται για κακή ασφάλεια και αναγνωσιμότητα. Επομένως, η καλύτερη λύση σε αυτό το είδος προβλήματος είναι η χρήση πλειάδων.

Σε γλώσσες όπου η ίδια η σύνταξη υποστηρίζει πλειάδες, οι πλειάδες αντιπροσωπεύονται από παρενθέσεις, όπως (int, bool, string) είναι τριπλός τύπος και η τιμή του μπορεί να είναι (1, true, "abc"). Θα πρέπει να σημειωθεί ότι κάθε τύπος πλειάδας είναι μοναδικός, (int, bool), (bool, int), (string, double) είναι όλα δυαδικά, αλλά είναι διαφορετικές πλειάδες, αν πάρετε μια συγκεκριμένη πλειάδα εδώ ως τιμή επιστροφής της συνάρτησης, αν και δεν είναι τόσο καλή όσο η πρώτη λύση χρησιμοποιώντας προσαρμοσμένους τύπους που αναφέρθηκαν προηγουμένως όσον αφορά την αναγνωσιμότητα και την ασφάλεια, αλλά είναι πολύ καλύτερη από τη δεύτερη λύση χρησιμοποιώντας χάρτη, τουλάχιστον χρησιμοποιώντας πλειάδες μπορεί να γνωρίζει πόσες τιμές θα επιστρέψει η συνάρτηση, Τι είδους τιμή είναι αυτές οι τιμές και έχει το πλεονέκτημα ότι είναι απλή και γρήγορη η κωδικοποίηση ενός δεύτερου σχήματος χρησιμοποιώντας χάρτη.

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

Το παρακάτω παρουσιάζει μια βιβλιοθήκη πλειάδων, που ονομάζεται Javatuples, με τη δική της επίσημη αρχική σελίδα και εκατοντάδες αστέρια github, η οποία σχεδόν παίζει μονοπωλιακή θέση στον τομέα των πλειάδων Java.

Οι Javatuples ορίζουν μια πλειάδα με μέγιστο μήκος 10, αλλά νομίζω ότι ο αριθμός των στοιχείων σε μια πλειάδα 10 είναι ήδη υπερβολικός και ουσιαστικά δεν υπάρχει αναγνωσιμότητα. Οι κατηγορίες πλειάδας ορίζονται ως εξής:

Μονάδα<A> (1 στοιχείο)

Ζεύγος<A,B> (2 στοιχεία)

Τριπλέτα<Α,Β,Γ> (3 στοιχεία)

Κουαρτέτο<A,B,C,D> (4 στοιχεία)

Κουιντέτο<A,B,C,D,E> (5 στοιχεία)

Σεξτέτο<A,B,C,D,E,F> (6 στοιχεία)

Σεπτέτο<A,B,C,D,E,F,G> (7 στοιχεία)

Οκτάδα<A,B,C,D,E,F,G,H> (8 στοιχεία)

Εννεάδα<A,B,C,D,E,F,G,H,I> (9 στοιχεία)

Δεκαετία<A,B,C,D,E,F,G,H,I,J> (10 στοιχεία)

Αυτές οι αρχετυπικές είναι γενικές, επομένως τα γράμματα σε γωνιακές αγκύλες μπορούν να αντικατασταθούν με αυθαίρετους τύπους. Παρακάτω είναι ένα παράδειγμα δυαδικού κώδικα





Με την εξαγωγή συμπερασμάτων, οι υπόλοιποι τύποι πλειάδας χρησιμοποιούνται με τον ίδιο τρόπο.

Επειδή οι πλειάδες της Java δεν υποστηρίζονται από την ίδια τη γλώσσα, ο κώδικας φαίνεται Ιάβας και λιγότερο κομψός. Ωστόσο, όταν γράφετε κώδικα, εκτός από την ευκολία της γραφής μπορεί να βελτιώσει την αποτελεσματικότητα, είναι πιο σημαντικό να δίνετε μεγαλύτερη προσοχή στο νόημα που εκφράζεται από τον ίδιο τον κώδικα, το οποίο είναι να χρησιμοποιήσετε το νόημα (λειτουργία) της ίδιας της πλειάδας για να βελτιώσετε τον κώδικα και ο τρόπος γραφής του είναι στην πραγματικότητα μόνο δευτερεύον.

Τέλος, πρέπει να σημειωθεί ότι ο τύπος στις γενικές γωνιακές αγκύλες δεν μπορεί να είναι ο βασικός τύπος της Java, εάν θέλετε να χρησιμοποιήσετε τον βασικό τύπο, πρέπει επίσης να είναι ο βασικός τύπος που έχει τεθεί σε πλαίσιο, όπως ο τύπος int πρέπει να μετατραπεί σε ακέραιο και ο τύπος bool αντιστοιχεί στον τύπο Boolean.




Προηγούμενος:Το POI CellStyle ορίζει το χρώμα φόντου του κελιού
Επόμενος:.NET/C# MailKit Tutorial για την αποστολή αλληλογραφίας [με πηγαίο κώδικα]
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 15/9/2021 10:55:08 π.μ. |
Πρέπει να χρησιμοποιήσετε το maven για να εισαγάγετε εξαρτήσεις όπως αυτή:


Τα javatuples μας επιτρέπουν να δημιουργήσουμε έως και δέκα τιμές επιστροφής


Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com