Anonymous structures and fields in Golang

In Golang , structures (or structs) allow us to group elements of different types into a single unit, which is useful for modeling real-world entities. Anonymous structures in Golang are temporary structures without names that are used for one-time purposes, while anonymous fields allow embedding of unnamed fields.

Anonymous structures and fields in Golang Picture 1

 

For example:

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) } 

Syntax:

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 }

 

Anonymous Structures in Go

Anonymous structures in Go are defined without a name and are useful for creating temporary, disposable structures. Here is the syntax and code example.

Syntax:

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

For example:

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) } 

Result:

Name: A Enrollment: 12345 GPA: 3.8

This code defines a Student structure with an anonymous personalDetails structure inside, storing the name and registration information. It then initializes student with values ​​for these fields and prints them out.

 

Anonymous fields

Anonymous fields in Go allow you to define fields without explicit names, only their types. This is useful when fields naturally follow the type name.

Syntax

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

For example:

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) } 

Result:

Enrollment: 12345 Name: A GPA: 3.8

Here, the data types ( int, string, float64 ) act as field names, so accessing the values ​​depends on the types.

Important Points to Remember About Anonymous Fields in Golang

1. Unique requirement: You cannot use two fields of the same type in a structure. For example:

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

2. Combining named and anonymous fields: You can combine anonymous and named fields in a structure.

type Student struct { id int // Named field int // Anonymous field }
4 ★ | 1 Vote

May be interested

  • Arrays in GolangArrays in Golang
    arrays in golang or go programming language are quite similar to other programming languages. here are the things you need to know about arrays in golang.
  • Nested Structure in GolangNested Structure in Golang
    go language allows nested structures. a structure that is a field of another structure is called nested structure.
  • How to pass an array to a function in GolangHow to pass an array to a function in Golang
    to manage this data efficiently, you often need to pass arrays to functions. in this article, we will learn how to pass arrays to functions in golang.
  • The way Hacker uses to remain anonymousThe way Hacker uses to remain anonymous
    hackers use different ways to remain anonymous while hacking, but it must be said that anonymity is completely unthinkable, but hackers can be safe and anonymous to some degree and ensure backwardness. it is very difficult.
  • Complex String Slice in GolangComplex String Slice in Golang
    there are two terms slice and composite literal. in this article we will learn how to create a slice and use composite literal in golang.
  • How to copy one slice into another slice in GolangHow to copy one slice into another slice in Golang
    to copy one slice into another, go provides a built-in function called copy(). this function allows you to copy elements from one slice (source slice) into another slice (destination slice).
  • What is the difference between Go and Java?What is the difference between Go and Java?
    is golang better than java? is golang harder than java? can golang replace java? this comparison will give you the answer.
  • How to create basic program in GolangHow to create basic program in Golang
    hello, world! is the first basic program in any programming language. you can write this first program in golang by following the steps below.
  • Who is Anonymous?Who is Anonymous?
    for more than a decade, anonymous has headacheed many authorities around the world with a series of big and different campaigns.
  • Anonymous browsing has more uses than you thinkAnonymous browsing has more uses than you think
    using anonymous browsing will help you wipe the entire browsing history when closing the window. but it has many other uses that you don't know.