Golang の匿名構造体とフィールド

Golangでは、構造体 (または struct) を使用すると、異なるタイプの要素を 1 つの単位にグループ化できるため、現実世界のエンティティをモデル化するのに役立ちます。Golang の匿名構造体は、1 回限りの目的で使用される名前のない一時的な構造体ですが、匿名フィールドでは名前のないフィールドを埋め込むことができます。

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

このコードは、名前と登録情報を格納する匿名のpersonalDetails構造体を内部に持つStudent構造体を定義します。次に、これらのフィールドの値を使用して学生を初期化し、出力します。

匿名フィールド

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. 固有の要件: 1 つの構造内で同じタイプの 2 つのフィールドを使用することはできません。例えば:

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

2. 名前付きフィールドと匿名フィールドの結合:構造体内で匿名フィールドと名前付きフィールドを組み合わせることができます。

type Student struct {
    id int // Named field
    int    // Anonymous field
}
Sign up and earn $1000 a day ⋙

Leave a Comment

Golangで定数を使う方法

Golangで定数を使う方法

Golang における Constant または Const とは何ですか? Go で定数を使用する際に知っておくべきことを以下に示します。

Golangのvolatile関数

Golangのvolatile関数

Go の可変長関数を使用すると、関数に可変数の引数を渡すことができます。 Golang の volatile 関数について知っておくべきことはすべてここにあります。

Golang の名前付き戻りパラメータ

Golang の名前付き戻りパラメータ

Golang では、名前付き戻りパラメータは、名前付きパラメータと呼ばれることがよくあります。 Golang では、関数のシグネチャまたは定義内で関数の戻りパラメータまたは結果に名前を付けることができます。

Goのキーワード

Goのキーワード

キーワード - キーワードは、何らかの内部プロセスに使用されるか、何らかの事前定義されたアクションを表す言語の単語です。 Golang のキーワードについて知っておくべきことを以下に示します。

Golangのデータ型

Golangのデータ型

データ型は、有効な Go 変数に格納できるデータの型を指定します。 Go 言語では、型は次の 4 つのカテゴリに分類されます。

Golangの関数の引数

Golangの関数の引数

Go は、引数を渡す方法として、値渡しと参照渡しという 2 つの主な方法をサポートしています。 Go では、デフォルトで値渡しが使用されます。

Golangで複数の値を返す関数

Golangで複数の値を返す関数

Go 言語では、return ステートメントを使用して関数から複数の値を返すことができます。つまり、関数では、 return ステートメントは複数の値を返すことができます。

GoのSwitch文

GoのSwitch文

Golang には他のほとんどのプログラミング言語と同様に switch ステートメントがあります。 Golang で switch ステートメントを使用する方法は次のとおりです。

Golangで選択文を使用する際に知っておくべきケース

Golangで選択文を使用する際に知っておくべきケース

この記事では、デッドロックを回避するために default case を使用する方法を学習します。しかし、まず、Golang の select コマンドを使用するときにデッドロックが発生するケースが何であるかを確認しましょう。

GolangでRuneを使う方法

GolangでRuneを使う方法

Golang におけるルーン文字とは何ですか? Golang で Rune を使用するにはどうすればいいですか?この記事でその答えがわかります。

Golangで演算子を使う方法

Golangで演算子を使う方法

演算子を使用すると、オペランドに対してさまざまな種類の演算を実行できます。 Go 言語では、演算子はさまざまな機能に基づいて分類できます。

Golang の void 識別子

Golang の void 識別子

Golang では _(アンダースコア) は空白識別子と呼ばれます。識別子は、識別目的で使用されるプログラム コンポーネントのユーザー定義名です。

Golangで基本的なプログラムを作成する方法

Golangで基本的なプログラムを作成する方法

こんにちは世界!あらゆるプログラミング言語における最初の基本プログラムです。この最初のプログラムは、以下の手順に従って Golang で記述できます。

WindowsにGoをインストールする方法

WindowsにGoをインストールする方法

Golang は Windows に簡単にインストールできます。以下は、Windows に Golang をインストールするための詳細なステップバイステップ ガイドです。

最新のThi Chien Tam Quocコードとコード引き換え手順

最新のThi Chien Tam Quocコードとコード引き換え手順

Thi Chien Tam Quoc コードには、初心者コード、イベント コード、ミッション報酬コードなど、多くの報酬があります。

最新のVTCモバイルドラゴンソードコード4/2025

最新のVTCモバイルドラゴンソードコード4/2025

Quantrimang で最新の Sword Dragon VTC モバイル コードを見つけてください。

ドラゴンボール超 87: フリーザの新たな力と姿が明らかに

ドラゴンボール超 87: フリーザの新たな力と姿が明らかに

ドラゴンボール第87話では、ブラックフリーザがフリーザの妹の現在の最新の状態であることが明らかになります。この状態では悟空UIとベジータUEを簡単に倒すことができます。

タロット vs. 占星術:どちらがより正確でしょうか?

タロット vs. 占星術:どちらがより正確でしょうか?

占星術とタロットカード占いはどちらも人々が未来を理解するのに役立つ予測方法です。しかし、占星術やタロットカード占いの方がより正確なのでしょうか?一緒に調べてみましょう!

Vidnoz AIについて学ぶ: わずか数分で魅力的なAI動画を作成

Vidnoz AIについて学ぶ: わずか数分で魅力的なAI動画を作成

Vidnoz AI は、わずか数分でプロ品質の AI ビデオを作成できる信頼性の高いプラットフォームを提供します。

最新のミニサバイバルコードとコード引き換え手順

最新のミニサバイバルコードとコード引き換え手順

Mini Survival Code は、ダイヤモンド、お金、経験、高レベルのキャラクター、戦闘力を高めるアイテムを入手するのに役立ちます...

ルーターレベルでVPNを有効にするメリットとデメリット

ルーターレベルでVPNを有効にするメリットとデメリット

多くの人がデバイス上で直接 VPN を使用していますが、ルーター レベルで VPN を有効にすることもできます。この設定により、各デバイスを個別に接続する必要がなくなります。

買わないでください 5 つのスマートフォン写真撮影ガジェット!

買わないでください 5 つのスマートフォン写真撮影ガジェット!

たくさんのアドオンを購入すると、よりプロフェッショナルになった気分になれるかもしれませんが、間違ったものを購入すると写真の質は向上しません。

逃げ道がないと思ったヌーは予想外にライオンを倒した

逃げ道がないと思ったヌーは予想外にライオンを倒した

ビデオには、ヌーがライオンに制圧される様子が映っている。アンテロープの運命は決まっているようで、ただそこに横たわって死ぬのを待つしかないと誰もが思っていました。

心臓に良いスナック

心臓に良いスナック

心臓に良いスナックを選ぶと、食事に栄養が加わり、食事の合間にエネルギーと満腹感を保つことができます。

突然シャットダウンしたコンピュータを修復する簡単な方法

突然シャットダウンしたコンピュータを修復する簡単な方法

残念ながら、使用中に突然パソコンの電源が切れてしまうことがあります。コンピュータに何が起こっているのか疑問に思っていませんか?この記事では、このエラーを修正する方法について説明します。

Safariでリーディングリストを削除する方法

Safariでリーディングリストを削除する方法

時間が経つにつれて、Safari の読書リストを頻繁に使用するようになると、リストが大きくなって乱雑になる可能性があります。 Safari の読書リストをクリアする手順は次のとおりです。

テレグラムグループでディスカッショントピックを作成する方法

テレグラムグループでディスカッショントピックを作成する方法

Telegram グループのトピックは Telegram グループ内のメッセージとは別になり、複数のディスカッション トピックを作成できます。以下の記事では、Telegram グループ トピックを作成する方法について説明します。

テスラコイルは電気を放電して歌うことができる

テスラコイルは電気を放電して歌うことができる

テスラコイルは、天才ニコラ・テスラの有名な発明である共振変圧器回路を形成します。高電圧、低強度、高周波の交流電流を生成するために使用されます...放電するだけでなく、人間は知性と創造性でテスラコイルを歌わせることもできます。

220トンの古代建築物と700個の石鹸を移動

220トンの古代建築物と700個の石鹸を移動

12月初旬、建設会社S・ラシュトンは、カナダのノバスコシア州ハリファックスで、約700個の石鹸の「力を借りて」、重さ220トンにも及ぶ古代の建物を9メートル移動させることに成功した。