Golang 中的匿名結構和字段

Golang中,結構(或結構體)允許我們將不同類型的元素分組為一個單元,這對於建模現實世界的實體很有用。Golang 中的匿名結構是沒有名稱的一次性臨時結構,而匿名欄位允許嵌入未命名的欄位。

Golang 中的匿名結構和字段

例如:

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

句法:

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
}

Go 中的匿名結構

Go 中的匿名結構沒有名稱,對於創建臨時的、一次性的結構很有用。這是語法和程式碼範例。

句法:

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

例如:

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

結果:

Name: A
Enrollment: 12345
GPA: 3.8

這段程式碼定義了一個Student結構,裡面有一個匿名的personalDetails結構,儲存了姓名和註冊資訊。然後使用這些欄位的值初始化學生並列印出來。

匿名字段

Go 中的匿名字段可讓您定義沒有明確名稱的字段,只需指定其類型。當欄位自然遵循類型名稱時這很有用。

句法

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

例如:

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

結果:

Enrollment: 12345
Name: A
GPA: 3.8

這裡,資料類型(int、string、float64)充當欄位名稱,因此存取值取決於類型。

關於 Golang 中匿名欄位需要記住的要點

1.唯一要求:在一個結構中不能使用兩個相同類型的欄位。例如:

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

2. 組合命名欄位和匿名欄位:您可以在結構中組合匿名欄位和命名欄位。

type Student struct {
    id int // Named field
    int    // Anonymous field
}

留下評論

如何修復 Microsoft Teams 錯誤代碼 2603 (2026)

如何修復 Microsoft Teams 錯誤代碼 2603 (2026)

遇到 Microsoft Teams 錯誤代碼 2603 而煩惱?我們的逐步指南可協助您快速解決問題,修復最新 2026 更新中的安裝失敗、當機等問題。適用於所有用戶!

如何修復 Microsoft Teams 錯誤 K 安全

如何修復 Microsoft Teams 錯誤 K 安全

遇到 Microsoft Teams 安全錯誤 K 時遇到問題?按照我們的逐步指南即可快速解決—無需任何技術知識。立即恢復流暢協作!

解決 Microsoft Teams 錯誤 N 網路

解決 Microsoft Teams 錯誤 N 網路

還在為 Microsoft Teams 的「錯誤 N」網路問題苦惱嗎?取得解決 Microsoft Teams「錯誤 N」網路問題的逐步指南,從快速重新啟動到進階故障排除,應有盡有。立即恢復流暢的通話和會議體驗!

一步一步教你如何在會議開始前建立分組討論室

一步一步教你如何在會議開始前建立分組討論室

透過這份詳盡的逐步指南,即可在 Zoom 會議開始前輕鬆建立分組討論室,實現無縫協作。預先分配與會者,最大程度提升參與。本指南是教育工作者、團隊和領導者的理想選擇。

解決 Microsoft Teams 中「Teams 資料夾在哪裡」的錯誤

解決 Microsoft Teams 中「Teams 資料夾在哪裡」的錯誤

還在為 Microsoft Teams 中令人抓狂的「Teams 資料夾在哪裡」錯誤而煩惱嗎?我們提供經過驗證的逐步故障排除方法,協助您快速解決問題,恢復流暢的團隊合作。包含最新方法!

解決 Microsoft Teams Mac 版錯誤鑰匙圈問題

解決 Microsoft Teams Mac 版錯誤鑰匙圈問題

還在為 Microsoft Teams Mac 版鑰匙圈錯誤而煩惱嗎?我們提供經過驗證的 macOS 逐步故障排除方案,協助您恢復流暢協作。快速解決方案就在眼前!

如何解決 Microsoft Teams 麥克風聲音模糊或無聲音的問題

如何解決 Microsoft Teams 麥克風聲音模糊或無聲音的問題

還在為 Microsoft Teams 麥克風聲音模糊或無聲而煩惱嗎?了解如何透過快速有效的步驟解決 Microsoft Teams 麥克風問題。清晰的音訊體驗,等你來體驗!

解決公共 Wi-Fi 上的 Microsoft Teams 網路錯誤

解決公共 Wi-Fi 上的 Microsoft Teams 網路錯誤

在公共 Wi-Fi 環境下遇到 Microsoft Teams 網路錯誤?立即取得 VPN 調整、連接埠檢查和快取清除等快速修復方法,恢復通話和會議的流暢運作。逐步指南助您快速解決問題。

透過直接連結解決 Microsoft Teams 加入會議錯誤

透過直接連結解決 Microsoft Teams 加入會議錯誤

遇到 Microsoft Teams 加入會議錯誤?點擊連結查看已驗證的解決方法。快速修復,輕鬆加入會議—無需任何技術技能!

如何運用 Microsoft Teams Copilot 實現 AI 賦能的生產力

如何運用 Microsoft Teams Copilot 實現 AI 賦能的生產力

了解如何使用 Microsoft Teams Copilot 提升 AI 賦能的生產力。逐步指南、關鍵功能和技巧,幫助您輕鬆革新會議、聊天和任務。立即開啟更聰明的協作!