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
}

Leave a Comment

How to use constants in Golang

How to use constants in Golang

What is a Constant or Const in Golang? Here's what you need to know about using constants in Go.

Volatile functions in Golang

Volatile functions in Golang

Variadic functions in Go allow you to pass a variable number of arguments to a function. Here's everything you need to know about variadic functions in Golang.

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.

Troubleshooting Microsoft Teams Video Error Green Screen

Troubleshooting Microsoft Teams Video Error Green Screen

Struggling with Microsoft Teams "Video Error" green screen? Discover proven, step-by-step troubleshooting fixes for seamless video calls. Quick solutions inside!

How to Fix Microsoft Teams How Teams Works Tutorial Error

How to Fix Microsoft Teams How Teams Works Tutorial Error

Struggling with the Microsoft Teams "How Teams Works" Tutorial Error? Discover proven, step-by-step fixes to resolve it quickly. Clear cache, update, and more for seamless onboarding. Works on latest versions!

How to Fix Microsoft Teams Error Today on Windows 10

How to Fix Microsoft Teams Error Today on Windows 10

Tired of the frustrating Microsoft Teams "Error Today" on Windows 10? Discover proven, step-by-step fixes to resolve it quickly and restore smooth teamwork. No tech skills needed!

Troubleshooting Microsoft Teams Room Basic vs Pro Errors

Troubleshooting Microsoft Teams Room Basic vs Pro Errors

Struggling with Troubleshooting Microsoft Teams Room Basic vs Pro Errors? Get step-by-step fixes for common issues, comparisons, and pro tips to resolve connectivity, licensing, and setup problems fast in both versions.

How to Fix Microsoft Teams Screen Sharing Lag in 2026

How to Fix Microsoft Teams Screen Sharing Lag in 2026

Tired of Microsoft Teams screen sharing lag ruining your 2026 meetings? Get instant fixes for lag, freezes, and poor quality. Proven steps to optimize performance and share screens flawlessly. Boost productivity today!

Troubleshooting Microsoft Teams Installation Errors on macOS

Troubleshooting Microsoft Teams Installation Errors on macOS

Struggling with Microsoft Teams installation errors on macOS? This ultimate guide provides proven, step-by-step fixes for common issues like Gatekeeper blocks, permission errors, and download failures to get Teams running smoothly on your Mac. Updated with the latest solutions.

How to Create and Manage a Bot in Microsoft Teams (2026)

How to Create and Manage a Bot in Microsoft Teams (2026)

Master how to create and manage a bot in Microsoft Teams (2026) with this expert guide. From setup to advanced management, unlock productivity boosts using the latest Bot Framework and Azure tools.

Troubleshooting Microsoft Teams Remote Control Request Error

Troubleshooting Microsoft Teams Remote Control Request Error

Tired of Microsoft Teams "Remote Control" Request Error blocking your meetings? Follow our proven, step-by-step troubleshooting guide with the latest fixes to restore seamless remote control and boost productivity instantly.

How to Fix Microsoft Teams Planner Error: Tasks Not Loading

How to Fix Microsoft Teams Planner Error: Tasks Not Loading

Struggling with Microsoft Teams Planner error where tasks not loading? Discover step-by-step fixes for Microsoft Teams Planner Error: Tasks Not Loading. Quick solutions for instant relief in Teams Planner. Updated with latest troubleshooting tips.

Troubleshooting Microsoft Teams Version History Errors

Troubleshooting Microsoft Teams Version History Errors

Tired of Microsoft Teams version history errors disrupting your workflow? This step-by-step troubleshooting guide covers common issues, quick fixes, and pro tips to restore seamless file versioning in Teams. Updated with the latest solutions!

Solving Microsoft Teams Error 2400: Unable to Connect to Servers

Solving Microsoft Teams Error 2400: Unable to Connect to Servers

Tired of Microsoft Teams Error 2400 blocking your connection? Follow our proven, step-by-step fixes to solve "Unable to Connect to Servers" and get back to productive meetings fast.

Where is My Microsoft Teams Recording Saved? Find Your Files Fast

Where is My Microsoft Teams Recording Saved? Find Your Files Fast

Struggling to locate your Microsoft Teams recording? Discover exactly where Teams saves meeting files in OneDrive or SharePoint, plus quick steps to find and access them instantly. No more lost recordings!

How to Fix Microsoft Teams Error G Audio

How to Fix Microsoft Teams Error G Audio

Struggling with Microsoft Teams "Error G" audio? Discover step-by-step fixes for microphone and speaker issues. Quick, easy solutions to get back to seamless meetings without frustration. Works on Windows, Mac & more!

Fixing Microsoft Teams Vcruntime140.dll Missing Error

Fixing Microsoft Teams Vcruntime140.dll Missing Error

Tired of the frustrating Microsoft Teams Vcruntime140.dll missing error crashing your meetings? Discover proven, step-by-step fixes to resolve it fast and restore smooth teamwork. No tech skills needed!

How to Fix Microsoft Teams Undefined Error (2026)

How to Fix Microsoft Teams Undefined Error (2026)

Struggling with Microsoft Teams 'Undefined Error' (2026)? Discover proven, step-by-step fixes like clearing cache, updating the app, and more. Get back to seamless collaboration fast!