Structuri și câmpuri anonime în Golang

În Golang , structurile (sau structurile) ne permit să grupăm elemente de diferite tipuri într-o singură unitate, ceea ce este util pentru modelarea entităților din lumea reală. Structurile anonime din Golang sunt structuri temporare fără nume utilizate în scopuri unice, în timp ce câmpurile anonime permit încorporarea câmpurilor fără nume.

Structuri și câmpuri anonime în Golang

De exemplu:

package main
import "fmt"

// struct học sinh với cấu trúc và trường ẩn danh
type Student struct {
    struct {    // Cấu trúc bên trong ẩn danh cho thông tin cá nhân
        name string
        enrollment int
    }
    GPA float64  // Trường chuẩn
}

func main() {
    student := Student{
        struct {
            name string
            enrollment int
        }{
            name: "A",
            enrollment: 12345,
        },
        GPA: 3.8,
    }
    fmt.Println("Name:", student.name)
    fmt.Println("Enrollment:", student.enrollment)
    fmt.Println("GPA:", student.GPA)
}

Sintaxă:

variable := struct {
    field1 dataType1
    field2 dataType2                                                          # Cấu trúc ẩn danh
    // Trường bổ sung khi cần
}{value1, value2}


type StructName struct {
    dataType1
    dataType2                                                                    # Trường ẩn danh                                        
    // Trường ẩn danh bổ sung
}

Structuri anonime în Go

Structurile anonime din Go sunt definite fără nume și sunt utile pentru crearea de structuri temporare, de unică folosință. Iată sintaxa și exemplul de cod.

Sintaxă:

variable := struct {
    field1 dataType1
    field2 dataType2
    // Các trường bổ sung khi cần
}{value1, value2}

De exemplu:

package main
import "fmt"
// Cấu trúc sinh viên với cấu trúc bên trong ẩn danh cho thông tin cá nhân
type Student struct {
    personalDetails struct { // Cấu trúc ẩn danh bên trong cho thông tin cá nhân
        name       string
        enrollment int
    }
    GPA float64 // Trường chuẩn
}
func main() {
    // Khởi tạo cấu trúc bên trong cho student
    student := Student{
        personalDetails: struct {
            name       string
            enrollment int
        }{
            name:       "A",
            enrollment: 12345,
        },
        GPA: 3.8,
    }
    // Hiện giá trị
    fmt.Println("Name:", student.personalDetails.name)
    fmt.Println("Enrollment:", student.personalDetails.enrollment)
    fmt.Println("GPA:", student.GPA)
}

Rezultat:

Name: A
Enrollment: 12345
GPA: 3.8

Acest cod definește o structură Student cu o structură anonimă personalDetails în interior, stochând numele și informațiile de înregistrare. Apoi inițializați studentul cu valori pentru aceste câmpuri și imprimați-le.

Câmpuri anonime

Câmpurile anonime din Go vă permit să definiți câmpuri fără nume explicite, fiind specificate doar tipurile acestora. Acest lucru este util atunci când câmpurile urmează în mod natural numele tipului.

Sintaxă

type StructName struct {
    dataType1
    dataType2
    // Additional anonymous fields
}

De exemplu:

package main
import "fmt"

// Cấu trúc học sinh bằng các trường ẩn danh
type Student struct {
    int     // Số đăng ký (trường ẩn danh)
    string  // Tên trường ẩn danh
    float64 // GPA (trường ẩn danh)
}

func main() {
    // Khởi tạo struct học sinh với các trường ẩn danh
    student := Student{12345, "A", 3.8}

    // Hiện giá trị
    fmt.Println("Enrollment:", student.int)
    fmt.Println("Name:", student.string)
    fmt.Println("GPA:", student.float64)
}

Rezultat:

Enrollment: 12345
Name: A
GPA: 3.8

Aici, tipurile de date ( int, string, float64 ) acționează ca nume de câmpuri, deci accesarea valorilor depinde de tipuri.

Puncte importante de reținut despre câmpurile anonime din Golang

1. Cerință unică: nu puteți utiliza două câmpuri de același tip într-o structură. De exemplu:

type InvalidStudent struct {
    int
    int // Error: duplicate type
}

2. Combinarea câmpurilor denumite și anonime: puteți combina câmpuri anonime și denumite într-o structură.

type Student struct {
    id int // Named field
    int    // Anonymous field
}
Sign up and earn $1000 a day ⋙

Leave a Comment

Cum să folosiți constantele în Golang

Cum să folosiți constantele în Golang

Ce este Constant sau Const în Golang? Iată ce trebuie să știți despre utilizarea constantelor în Go.

Funcții volatile în Golang

Funcții volatile în Golang

Funcțiile variadice din Go vă permit să transmiteți un număr variabil de argumente unei funcții. Iată tot ce trebuie să știți despre funcțiile volatile din Golang.

Parametrii de returnare numiți în Golang

Parametrii de returnare numiți în Golang

În Golang, parametrii de returnare numiți sunt adesea denumiți ca parametri numiți. Golang permite denumirea parametrilor returnați sau a rezultatelor funcțiilor în semnătura sau definiția funcției.

Cuvinte cheie în Go

Cuvinte cheie în Go

Cuvinte cheie - Cuvintele cheie sunt cuvinte într-o limbă care sunt utilizate pentru un proces intern sau reprezintă o acțiune predefinită. Iată lucrurile pe care trebuie să le știți despre cuvintele cheie din Golang.

Tipuri de date în Golang

Tipuri de date în Golang

Tipul de date specifică tipul de date pe care o variabilă Go validă poate conține. În limba Go, tipurile sunt împărțite în patru categorii, după cum urmează:

Argumente ale funcției în Golang

Argumente ale funcției în Golang

Go acceptă două moduri principale de a transmite argumente: Treci după valoare și Treci prin referință. Go folosește trecerea prin valoare în mod implicit.

Funcție care returnează mai multe valori în Golang

Funcție care returnează mai multe valori în Golang

În limba Go, vi se permite să returnați mai multe valori dintr-o funcție, folosind instrucțiunea return. Cu alte cuvinte, într-o funcție, o instrucțiune return poate returna mai multe valori.

Declarație Switch în Go

Declarație Switch în Go

Golang, ca majoritatea altor limbaje de programare, are declarație switch. Iată cum să utilizați declarația switch în Golang.

Cazuri de cunoscut atunci când se utilizează declarații de selecție în Golang

Cazuri de cunoscut atunci când se utilizează declarații de selecție în Golang

În acest articol, vom învăța cum să folosim cazul implicit pentru a evita blocajul. Dar mai întâi, să aflăm care este cazul de blocare atunci când utilizați comanda Golang select?

Cum se folosește Rune în Golang

Cum se folosește Rune în Golang

Ce sunt runele în Golang? Cum se folosește Rune în Golang? Articolul vă va spune răspunsul.

Cum să folosiți operatorii în Golang

Cum să folosiți operatorii în Golang

Operatorii ne permit să efectuăm diferite tipuri de operații pe operanzi. În limbajul Go, operatorii pot fi clasificați în funcție de diferitele lor funcții.

Identificator de gol în Golang

Identificator de gol în Golang

_(sublinierea) în Golang se numește Blank Identifier. Identificatorul este un nume definit de utilizator al componentelor programului utilizat în scopuri de identificare.

Cum se creează un program de bază în Golang

Cum se creează un program de bază în Golang

Salut Lume! este primul program de bază în orice limbaj de programare. Puteți scrie acest prim program în Golang urmând pașii de mai jos.

Cum se instalează Go pe Windows

Cum se instalează Go pe Windows

Golang poate fi instalat cu ușurință pe Windows. Mai jos este un ghid detaliat pas cu pas pentru instalarea Golang pe Windows.

Cele mai bune laptopuri pentru studenți în 2025

Cele mai bune laptopuri pentru studenți în 2025

Studenții au nevoie de un anumit tip de laptop pentru studiile lor. Acesta nu ar trebui să fie doar suficient de puternic pentru a performa bine la specializarea aleasă, ci și suficient de compact și ușor pentru a fi transportat toată ziua.

Cum se adaugă o imprimantă în Windows 10

Cum se adaugă o imprimantă în Windows 10

Adăugarea unei imprimante la Windows 10 este simplă, deși procesul pentru dispozitivele cu fir va fi diferit față de cel pentru dispozitivele fără fir.

Cum să verificați memoria RAM și erorile RAM de pe computer cu cea mai mare precizie

Cum să verificați memoria RAM și erorile RAM de pe computer cu cea mai mare precizie

După cum știți, memoria RAM este o componentă hardware foarte importantă a unui computer, acționând ca memorie pentru procesarea datelor și fiind factorul care determină viteza unui laptop sau PC. În articolul de mai jos, WebTech360 vă va prezenta câteva modalități de a verifica erorile de RAM folosind software pe Windows.

Diferența dintre televizorul obișnuit și Smart TV

Diferența dintre televizorul obișnuit și Smart TV

Televizoarele inteligente au luat cu adevărat lumea cu asalt. Cu atât de multe funcții grozave și conectivitate la internet, tehnologia a schimbat modul în care ne uităm la televizor.

De ce congelatorul nu are lumină, dar frigiderul are?

De ce congelatorul nu are lumină, dar frigiderul are?

Frigiderele sunt aparate cunoscute în gospodării. Frigiderele au de obicei 2 compartimente, compartimentul cool este spatios si are o lumina care se aprinde automat de fiecare data cand utilizatorul il deschide, in timp ce compartimentul congelator este ingust si nu are lumina.

2 moduri de a remedia congestionarea rețelei care încetinește conexiunea Wi-Fi

2 moduri de a remedia congestionarea rețelei care încetinește conexiunea Wi-Fi

Rețelele Wi-Fi sunt afectate de mulți factori, dincolo de routere, lățime de bandă și interferențe, dar există câteva modalități inteligente de a vă îmbunătăți rețeaua.

Cum să downgrade de la iOS 17 la iOS 16 fără a pierde date folosind Tenorshare Reiboot

Cum să downgrade de la iOS 17 la iOS 16 fără a pierde date folosind Tenorshare Reiboot

Dacă doriți să reveniți la iOS 16 stabil pe telefonul dvs., iată ghidul de bază pentru dezinstalarea iOS 17 și downgrade de la iOS 17 la 16.

Ce se întâmplă cu organismul când mănânci iaurt în fiecare zi?

Ce se întâmplă cu organismul când mănânci iaurt în fiecare zi?

Iaurtul este un aliment minunat. Este bine să mănânci iaurt în fiecare zi? Când mănânci iaurt în fiecare zi, cum se va schimba corpul tău? Să aflăm împreună!

Ce tip de orez este cel mai bun pentru sănătate?

Ce tip de orez este cel mai bun pentru sănătate?

Acest articol discută cele mai hrănitoare tipuri de orez și cum să maximizați beneficiile pentru sănătate ale orezului pe care îl alegeți.

Cum să te trezești la timp dimineața

Cum să te trezești la timp dimineața

Stabilirea unui program de somn și a rutinei de culcare, schimbarea ceasului cu alarmă și ajustarea dietei sunt câteva dintre măsurile care vă pot ajuta să dormiți mai bine și să vă treziți la timp dimineața.

Sfaturi pentru a juca Rent Please! Proprietar Sim pentru începători

Sfaturi pentru a juca Rent Please! Proprietar Sim pentru începători

Inchiriez va rog! Landlord Sim este un joc mobil de simulare pe iOS și Android. Veți juca ca proprietarul unui complex de apartamente și veți începe să închiriați un apartament cu scopul de a îmbunătăți interiorul apartamentelor și de a le pregăti pentru chiriași.

Cele mai recente coduri de apărare a turnului de baie și cum să introduceți codurile

Cele mai recente coduri de apărare a turnului de baie și cum să introduceți codurile

Obțineți codul de joc Roblox Bathroom Tower Defense și răscumpărați pentru recompense interesante. Ele vă vor ajuta să faceți upgrade sau să deblocați turnuri cu daune mai mari.

Structura, simbolurile și principiile de funcționare ale transformatoarelor

Structura, simbolurile și principiile de funcționare ale transformatoarelor

Să învățăm despre structura, simbolurile și principiile de funcționare ale transformatoarelor în cel mai precis mod.

4 moduri prin care AI face televizoarele inteligente mai bune

4 moduri prin care AI face televizoarele inteligente mai bune

De la o calitate mai bună a imaginii și a sunetului la controlul vocal și multe altele, aceste funcții bazate pe inteligență artificială fac televizoarele inteligente mult mai bune!

De ce ChatGPT este mai bun decât DeepSeek

De ce ChatGPT este mai bun decât DeepSeek

Inițial, oamenii aveau mari speranțe în DeepSeek. Fiind un chatbot AI comercializat ca un concurent puternic pentru ChatGPT, acesta promite capacități și experiențe inteligente de chat.