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

Named return parameters in Golang

Named return parameters in Golang

In Golang, named return parameters are often referred to as named parameters. Golang allows naming the return parameters or results of functions in the function signature or definition.

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.

How to change units of measurement on Apple Maps

How to change units of measurement on Apple Maps

Apple Maps application supports you to change the measurement unit between km, mile, and miles, depending on each person's needs and usage habits.

7 ChatGPT and AI Apps for Free Travel Planning

7 ChatGPT and AI Apps for Free Travel Planning

These free travel planning apps use AI and Machine Learning tools like ChatGPT to prepare your itinerary in seconds.

How to use Gemini from Google Chrome address bar

How to use Gemini from Google Chrome address bar

Google is integrating AI features into the Google Chrome browser, most recently using Gemini from the Google Chrome address bar.

4 Ways to Change User Account Type in Windows

4 Ways to Change User Account Type in Windows

In addition to creating multiple users, Windows 10 also lets you limit what others can do on a shared PC, by providing multiple types of accounts, namely standard user accounts and admin accounts.

10 useful shortcuts to increase productivity on Microsoft Edge

10 useful shortcuts to increase productivity on Microsoft Edge

Keyboard shortcuts are a great productivity tool, especially for those whose jobs involve a lot of typing.

Serious bug forces Google to pause AI feature that creates images with text

Serious bug forces Google to pause AI feature that creates images with text

Google has announced that it is suspending the feature of generating images of people from text of its Gemini AI model due to a serious historical error.

How to Use Copilot in PowerPoint

How to Use Copilot in PowerPoint

Copilot will help you add creative ideas to your PowerPoint content slides, or fix the bad content in your presentation slides.

How to delete Google Gemini conversation

How to delete Google Gemini conversation

Instead of deleting your entire Google Gemini history, you can choose to delete the conversations you want. This article will guide you through deleting your Google Gemini conversations.

How to Downgrade from iOS 16 Beta 1 to iOS 15

How to Downgrade from iOS 16 Beta 1 to iOS 15

In this article, WebTech360 will guide you how to downgrade from iOS 16 Beta to iOS 15.

How to fix #SPILL! error in Microsoft Excel

How to fix #SPILL! error in Microsoft Excel

The #SPILL! error in Excel is quite common and it is quite simple to fix. Here is how to fix the #SPILL! error easily in Excel.

The best apps to monitor children using phones

The best apps to monitor children using phones

Here's a list of the best parental control apps, to help you compare the different options available.

How to pin media controls to Chromebook Shelf

How to pin media controls to Chromebook Shelf

To use this feature, your Chromebook must be running Chrome OS 89 or later.

How to Stop Sharing Safari Web History Across Multiple Devices

How to Stop Sharing Safari Web History Across Multiple Devices

Safari browser shares web history with other Apple devices that share the same iCloud account. Many people concerned about privacy can refer to the article to stop sharing.

How to Resize Images Properly in Photoshop

How to Resize Images Properly in Photoshop

Many people used to find resizing images very annoying until they learned about Photoshop's simple channel-based protection method.

How to avoid the most common Valentines Day scams

How to avoid the most common Valentines Day scams

Valentine's Day is prime time for scammers. However, you can ensure your February 14th goes smoothly by avoiding these scams.