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 unnamed fields.

Anonymous structures and fields in Golang

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
}
Sign up and earn $1000 a day ⋙

Leave a Comment

Keywords in Go

Keywords in Go

Keyword - Keywords are words in a language that are used for some internal processes or represent some predefined actions. Here is what you need to know about keywords in Golang.

Data types in Golang

Data types in Golang

Data types specify what type of data a valid Go variable can hold. In the Go language, types are divided into four categories as follows:

Function arguments in Golang

Function arguments in Golang

Go supports two main ways to pass arguments: Pass by Value and Pass by Reference. Go uses pass by value by default.

Function returning multiple values ​​in Golang

Function returning multiple values ​​in Golang

In Go language, you are allowed to return multiple values ​​from a function, using the return statement. In other words, in a function, a return statement can return multiple values.

Switch Statement in Go

Switch Statement in Go

Golang like most other programming languages ​​has switch statement. Here is how to use switch statement in Golang.

Cases to know when using selection statements in Golang

Cases to know when using selection statements in Golang

In this article, we will learn how to use default case to avoid deadlock. But first, we will learn what is deadlock case when using select command in Golang?

How to use Rune in Golang

How to use Rune in Golang

What is Rune in Golang? How to use Rune in Golang? This article will give you the answer.

How to use operators in Golang

How to use operators in Golang

Operators allow us to perform different types of operations on operands. In Go language, operators can be classified based on their different functions.

Void identifier in Golang

Void identifier in Golang

_(underscore) in Golang is called Blank Identifier. Identifier is a user-defined name of program elements used for identification purposes.

How to create basic program in Golang

How 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.

How to Install Go on Windows

How to Install Go on Windows

Golang can be easily installed on Windows. Here is a step-by-step guide to install Golang on Windows.

Methods with the same name in Golang

Methods with the same name in Golang

Golang allows creating two or more methods with the same name in the same package, but the receivers of these methods must be of different types.

Functions in Go

Functions in Go

In Go, functions are blocks of code that perform specific tasks, which can be reused throughout the program to save memory, improve readability, and save time.

Variable Scope in Go

Variable Scope in Go

The scope of a variable in Golang determines which part of the program the variable is accessible to. In Go, all identifiers have a lexical scope that is determined at compile time.

4 Ways to Use ChatGPTs Canvas Mode

4 Ways to Use ChatGPTs Canvas Mode

ChatGPT's new Canvas mode adds a new dimension to writing and editing in the world's leading Generative AI engine.

Things People Dislike Most About AI Photo Editors

Things People Dislike Most About AI Photo Editors

While AI photo editors can streamline your editing workflow significantly, they are not perfect. There are a few things users don’t like about them, and in today’s article, you’ll discover what they are.

Fix Google Play Store not automatically updating apps

Fix Google Play Store not automatically updating apps

When the Play Store doesn't update apps automatically, users risk missing out on new features, security patches, and bug fixes. Luckily, you can configure the Google Play Store to update your apps automatically using these steps.

Nintendo revolutionizes the way digital games are shared with Virtual Game Cards

Nintendo revolutionizes the way digital games are shared with Virtual Game Cards

In a move that completely changes the way digital games are distributed, Nintendo has officially introduced the Virtual Game Cards system at the Nintendo Direct event.

Instructions for sending files on Messenger on phone and computer

Instructions for sending files on Messenger on phone and computer

Besides sending photos on Messenger, users can now send files on the application to others, with all document file formats such as pdf, doc, xlx...

How to add subtitles, lyrics automatically on CapCut

How to add subtitles, lyrics automatically on CapCut

CapCut also has the option to insert video subtitles like some famous video subtitling applications. Then the application automatically recognizes the sound and voice in the video, then displays it in the video.

Difference between 2.4GHz and 5GHz WiFi

Difference between 2.4GHz and 5GHz WiFi

You've decided to replace your old router. When you unbox your new wireless router, you may wonder why there are two networks: 2.4GHz and 5GHz. Is the 5GHz network stronger? What's the difference?

Top 10 best internet security software today

Top 10 best internet security software today

These days, users can pay to protect all their devices – whether it’s a PC, Mac, or smartphone. But with so many options on the market today, it can be hard to know where to start. Here’s a list of the best internet security suites available today.

Why is Adobe Express the ultimate tool for digital artists and creators?

Why is Adobe Express the ultimate tool for digital artists and creators?

With a wealth of tools for digital creators, Adobe Express is the ultimate all-in-one creative tool for everyone—and it's not going anywhere.

How to turn Gmail into a desktop application

How to turn Gmail into a desktop application

For more convenience in using Gmail, you can turn Gmail into an application on your computer without having to access it manually anymore.

Latest Thien Nhai Minh Nguyet Dao Code and how to enter code

Latest Thien Nhai Minh Nguyet Dao Code and how to enter code

Code Thien Nhai Minh Nguyet Dao helps players not feel bored when first joining the game.

7 Reasons Why Hapic Is Becoming a Favorite Free Photo Editor

7 Reasons Why Hapic Is Becoming a Favorite Free Photo Editor

From the owner and developer of TikTok and CapCut, Hypic is a photo editing app that many people use on their phones, and there are plenty of reasons why it's a favorite.

Creating a water battery that is cheaper, recyclable and doesnt explode

Creating a water battery that is cheaper, recyclable and doesnt explode

Scientists at RMIT University in Melbourne (Australia) have created a recyclable water battery by replacing the dangerous chemical electrolytes used in conventional batteries with water.

How many days on Earth is one day on the Moon?

How many days on Earth is one day on the Moon?

The time for the Moon to revolve around the Earth is about 27.3 days, while the Earth rotates once around its axis in 24 hours (one day - night).

Small fish can make a sound as loud as a gunshot

Small fish can make a sound as loud as a gunshot

Male Danionella cerebrum fish are only about the size of a fingernail, but can produce noises exceeding 140 decibels, according to research published in the journal PNAS.