Τι είναι οι δομές στο Golang

Ti Einai Oi Domes Sto Golang



Στη γλώσσα Go, μια δομή είναι μια συλλογή μεταβλητών (πεδίων) που ομαδοποιούνται κάτω από ένα μόνο όνομα. Είναι ένας σύνθετος τύπος δεδομένων που μας επιτρέπει να δημιουργήσουμε προσαρμοσμένες δομές δεδομένων για τη διατήρηση σχετικών πληροφοριών. Οι δομές στο Go είναι σαν κλάσεις στον αντικειμενοστραφή προγραμματισμό όπως η C και η C++, αλλά δεν υποστηρίζουν κληρονομικότητα. Αντίθετα, βασίζονται στη σύνθεση για να επιτύχουν επαναχρησιμοποίηση κώδικα. Αυτό το άρθρο καλύπτει τις δομές στο Golang και πώς μπορούμε να δηλώσουμε και να αποκτήσουμε πρόσβαση στα μέλη struct.

Τι είναι μια δομή στο Golang

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







Ακολουθεί ένα παράδειγμα δομής στο Golang:



τύπος Δομή ατόμου {
Συμβολοσειρά FullName
Years Old int
Διεύθυνση τοποθεσίας
}
τύπος Δομή διεύθυνσης {
Συμβολοσειρά StreetName
Συμβολοσειρά CityName    
Συμβολοσειρά CountryName
}


Εδώ έχουμε ορίσει μια δομή Πρόσωπο που έχει τρία πεδία: Πλήρες Όνομα, Έτη και Τοποθεσία. Το πεδίο Τοποθεσία είναι από μόνο του μια δομή που έχει τρία πεδία: Όνομα δρόμου, Όνομα πόλης και Όνομα χώρας.



Πώς να δηλώσετε Struc στο Golang

Μπορούμε να δηλώσουμε μια δομή στο Golang χρησιμοποιώντας το τύπος λέξη-κλειδί. Το όνομα της δομής ορίζεται μετά το τύπος λέξη-κλειδί και τα πεδία της περικλείονται σε σγουρά άγκιστρα { } . Ακολουθεί η σύνταξη για τη δήλωση μιας δομής στο Go:





τύπος StructName struct {
Όνομα πεδίου1 Τύπος πεδίου1
Όνομα πεδίου2 Τύπος πεδίου2
...
}


Παρακάτω είναι ένα παράδειγμα του τρόπου δήλωσης μιας δομής με το όνομα Person με δύο πεδία όνομα και ηλικία τύπων string και int αντίστοιχα:

τύπος Δομή ατόμου {
συμβολοσειρά ονόματος
ηλικία ενθ
}


Στον παραπάνω κώδικα χρησιμοποιήσαμε το τύπος λέξη-κλειδί για να δηλώσετε μια νέα δομή με όνομα Πρόσωπο με δύο πεδία όνομα τύπου string και ηλικία τύπου ενθ. Τα πεδία χωρίζονται με α Νέα γραμμή χαρακτήρας αλλά α ερωτηματικό (;) μπορεί επίσης να χρησιμοποιηθεί για το διαχωρισμό τους.



Πώς να αποκτήσετε πρόσβαση στο μέλος της δομής στο Golang

Για πρόσβαση στα πεδία μιας παρουσίας δομής στη γλώσσα Go τελεία ('.') χρησιμοποιείται χειριστής. Αυτός ο τελεστής κουκκίδας ακολουθείται από ένα όνομα πεδίου. Ακολουθεί ένα παράδειγμα του τρόπου πρόσβασης στα πεδία ονόματος και ηλικίας μιας παρουσίας δομής Person:

// Δημιούργησε ένα νέο ` Πρόσωπο ` struct παράδειγμα με όνομα 'κας' και ηλικία 24
kash := Πρόσωπο { όνομα: 'κας' , ηλικία: 24 }

// Πρόσβαση στα πεδία του ` kash ` struct παράδειγμα
fmt.Println ( kash.όνομα ) // Παραγωγή: 'κας'
fmt.Println ( kash.age ) // Παραγωγή: 24


Στον παραπάνω κώδικα, δημιουργήσαμε ένα νέο παράδειγμα δομής Person με το όνομα kash με το όνομα kash και ηλικία 24 . Στη συνέχεια, έχουμε πρόσβαση στα πεδία ονόματος και ηλικίας της παρουσίας της δομής kash χρησιμοποιώντας το (“”) χειριστή και εκτυπώστε τα στην κονσόλα.

Είναι σημαντικό να σημειωθεί ότι η πρόσβαση στα πεδία μιας παρουσίας δομής γίνεται με χρήση σημειογραφίας κουκκίδων και όχι βέλος σημειογραφία (->) χρησιμοποιείται σε κάποιες άλλες γλώσσες προγραμματισμού. Ο συμβολισμός κουκκίδας χρησιμοποιείται με συνέπεια στο Go για πρόσβαση σε πεδία δομών, καθώς και σε ιδιότητες και μεθόδους άλλων τύπων.

Παράδειγμα κώδικα δήλωσης και πρόσβασης στο μέλος της δομής στο Golang

Ακολουθεί ένα πλήρες παράδειγμα δήλωσης της δομής Person στο Go και εκτύπωσης των τιμών της στην οθόνη:

κύριο πακέτο
εισαγωγή 'fmt'
τύπος Δομή ατόμου {
συμβολοσειρά ονόματος
ηλικία ενθ
}
func main ( ) {
// Δημιούργησε ένα νέο ` Πρόσωπο ` struct παράδειγμα με όνομα 'κας' και ηλικία 24
kash := Πρόσωπο { όνομα: 'κας' , ηλικία: 24 }
// Εκτυπώστε το ` όνομα ` και ` ηλικία ` του ` kash ` struct παράδειγμα στην κονσόλα
fmt.Εκτύπωση ( 'Όνομα: %s \n ' , kash.name )
fmt.Εκτύπωση ( 'Ηλικία: %d \n ' , kash.age )
}


Στον παραπάνω γραμμένο κώδικα, δηλώσαμε πρώτα το Πρόσωπο struct. Αυτή η δομή περιέχει δύο πεδία που είναι το όνομα και η ηλικία. Μετά από αυτό, δημιουργήσαμε μια νέα παρουσία δομής Person με το όνομα kash με το όνομα kash και ηλικία 24 .

Για να εμφανίσουμε τα πεδία ονόματος και ηλικίας, χρησιμοποιούμε το fmt.Εκτύπωση λειτουργία με το %μικρό και %ρε προσδιοριστές μορφής για να εκτυπώσετε τα πεδία ονόματος και ηλικίας, αντίστοιχα.

Μετά την εκτέλεση, εμφανίζεται η ακόλουθη έξοδος κώδικα στην κονσόλα:

Πώς να περάσετε τη δομή ως επιχειρήματα συνάρτησης

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

Παράδειγμα κώδικα

Το παρακάτω παράδειγμα δείχνει πώς να μεταβιβάσετε μια παρουσία δομής Person ως όρισμα σε μια συνάρτηση στη γλώσσα Go και να εκτυπώσετε τις τιμές της στην οθόνη:

κύριο πακέτο
εισαγωγή 'fmt'
// Δηλώστε μια δομή με όνομα ` Πρόσωπο ` με δύο πεδία: ` όνομα ` και ` ηλικία `
τύπος Δομή ατόμου {
συμβολοσειρά ονόματος
ηλικία ενθ
}
// Δηλώστε α λειτουργία ονομάστηκε ` printPerson ` που παίρνει α ` Πρόσωπο ` struct όπως και ένα επιχείρημα
func printPerson ( p Πρόσωπο ) {
fmt.Εκτύπωση ( 'Όνομα: %s \n ' , p.name )
fmt.Εκτύπωση ( 'Ηλικία: %d \n ' , p.age )
}
func main ( ) {
// Δημιούργησε ένα νέο ` Πρόσωπο ` struct παράδειγμα με όνομα 'κας' και ηλικία 24
kash := Πρόσωπο { όνομα: 'κας' , ηλικία: 24 }
// Πέρνα το ` kash ` struct παράδειγμα προς το ` printPerson ` λειτουργία
printPerson ( kash )
}


Στον παραπάνω κώδικα, δηλώσαμε πρώτα τη δομή Person με δύο πεδία, όνομα, και ηλικία . Στη συνέχεια δηλώνουμε μια συνάρτηση με όνομα printPerson που παίρνει μια δομή Person ως όρισμα και εκτυπώνει το όνομα και τα πεδία ηλικίας στην οθόνη χρησιμοποιώντας τη συνάρτηση fmt.Printf.

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

Η ακόλουθη έξοδος μπορεί να φανεί στην κονσόλα μετά την εκτέλεση του παραπάνω κώδικα:

συμπέρασμα

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