ερώτηση

Γνώση Υπολογιστών >> ερώτηση >  >> PC Αντιμετώπιση προβλημάτων

Πώς να χρησιμοποιήσετε τις δομές στο Golang [Πλήρης σεμινάριο]

## Δομές

- Οι δομές Golang μας επιτρέπουν να ομαδοποιήσουμε δεδομένα μαζί.

- Μοιάζουν με δομές σε άλλες γλώσσες προγραμματισμού.

- Οι δομές είναι τύποι δεδομένων που καθορίζονται από το χρήστη και σας επιτρέπουν να δημιουργήσετε τους δικούς σας προσαρμοσμένους τύπους.

- Οι δομές μπορούν να περιέχουν οποιονδήποτε τύπο δεδομένων, συμπεριλαμβανομένων άλλων δομών.

Ορισμός δομής:

```πάει

πληκτρολογήστε structure_name struct {

μέλος_όνομα τύπου1

μέλος_όνομα τύπου2

...

όνομα_μέλους τύποςN

}

```

- Αυτό ορίζει μια δομή με το όνομα "structure_name" με μέλη "member_name". Κάθε μέλος έχει έναν τύπο, ο οποίος μπορεί να είναι οποιοσδήποτε έγκυρος τύπος Go.

Δημιουργία δομών:

```πάει

var structure_name =structure_type {

μέλος_όνομα1:τιμή1,

μέλος_όνομα2:τιμή2,

...

μέλος_όνομαΝ:τιμήΝ

}

```

- Αυτό δημιουργεί μια μεταβλητή τύπου "structure_name" και αρχικοποιεί τα μέλη της με τις δεδομένες τιμές.

Πρόσβαση σε μέλη:

- Για πρόσβαση σε ένα μέλος δομής, χρησιμοποιήστε τον τελεστή κουκκίδας:"structure_name.member_name".

Παράδειγμα:

```πάει

// Ορίστε μια δομή με όνομα πρόσωπο με όνομα και μέλη ηλικίας.

πληκτρολογήστε person struct {

Συμβολοσειρά ονόματος

Ηλικία ενθ

}

func main() {

// Δημιουργήστε ένα άτομο με το όνομα "John Doe".

person1 :=άτομο{"John Doe", 30}

// Εκτύπωση του ονόματος και της ηλικίας του Γιάννη.

fmt.Println("Όνομα:", person1.Name)

fmt.Println("Age:", person1.Age)

}

```

Ονομασμένες δομές:

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

```πάει

πληκτρολογήστε MyStruct struct {

a int

β float32

c χορδή

}

πληκτρολογήστε τη δομή σας {

f int 'json:"first"'

l συμβολοσειρά 'json:"last"'

}

```

- Και για το "MyStruct" και για το "Your struct" παραπάνω, η λέξη-κλειδί struct είναι προαιρετική

Ανώνυμες δομές

- Οι ανώνυμες δομές μπορούν να χρησιμοποιηθούν για τη δημιουργία τύπων δεδομένων ad-hoc χωρίς να ορίζεται ρητά ένας τύπος δομής.

- Όταν μια ανώνυμη δομή χρησιμοποιείται ως πεδίο μιας άλλης δομής ή ως στοιχείο μιας φέτας/χάρτου, ο τύπος του πεδίου είναι η ανώνυμη δομή και η ετικέτα του πεδίου είναι το όνομα του τύπου.

```πάει

πληκτρολογήστε Person struct {

συμβολοσειρά ονόματος

ηλικία ενθ

}

```

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

```πάει

var πρόσωπο =δομή {

συμβολοσειρά ονόματος

ηλικία ενθ

}{name:"Bob", ηλικία:20}

```

- Σε αυτήν την περίπτωση, το άτομο της μεταβλητής τύπου `struct{ name string; Το age int }` δημιουργείται και αρχικοποιείται.

Δομές ενσωμάτωσης

- Η ενσωμάτωση μιας δομής σε μια άλλη δομή επιτρέπει μια μορφή κληρονομικότητας στο Go.

```πάει

πληκτρολογήστε Person struct {

συμβολοσειρά ονόματος

ηλικία ενθ

}

πληκτρολογήστε Employee struct {

μισθός ενθ

Πρόσωπο

}

```

- Εδώ το "Employee" ενσωματώνει το "Person", έτσι μια μεταβλητή "Employee" θα περιλαμβάνει τα πεδία από το "Person" (όνομα και ηλικία) καθώς και τα δικά της πεδία.

```πάει

emp :=Υπάλληλος{μισθός:100000, Άτομο:Πρόσωπο{όνομα:"John", ηλικία:30}}

fmt.Println(εμπ. μισθός) // 100000

fmt.Println(emp.name) // John

```

- Τα πεδία της ενσωματωμένης δομής προωθούνται στην εξωτερική (που περιέχει) δομή σαν να είχαν δηλωθεί στη δομή που περιέχει. Εδώ, τα πεδία «όνομα» και «ηλικία» του «Person» είναι πλέον προσβάσιμα στη μεταβλητή «Εργαζόμενος» («emp»).

Ετικέτες σε δομές

- Ετικέτες μπορούν να επισυναφθούν σε πεδία δομής για να παρέχουν πρόσθετες πληροφορίες. Αυτές οι ετικέτες χρησιμοποιούνται από ανάκλαση και κωδικοποιητές/αποκωδικοποιητές.

```πάει

πληκτρολογήστε Person struct {

συμβολοσειρά ονόματος `json:"name"` // ετικέτα json

age int `xml:"age"` // ετικέτα xml

}

```

- Οι ετικέτες περικλείονται σε backticks («`») εάν περιέχουν κενά ή άλλους ειδικούς χαρακτήρες.

Συμπέρασμα

- Οι δομές παρέχουν έναν τρόπο ομαδοποίησης σχετικών δεδομένων και δημιουργίας προσαρμοσμένων τύπων δεδομένων στο Go.

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

- Ετικέτες μπορούν να προσαρτηθούν σε πεδία δομής για πρόσθετα μεταδεδομένα και συμβατότητα με τυπικές βιβλιοθήκες.

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα