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.
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 }
You should read it
May be interested
- Arrays in Golangarrays 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 Golanggo 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 Golangto 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 anonymoushackers 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 Golangthere 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 Golangto 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?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 Golanghello, 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?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 thinkusing 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.