Golang の埋め込み構造体型: 構文と使用法を理解する
Go で埋め込み構造体型を扱う場合、その構文と使用法を理解することが重要です。正しい使い方。この記事では、埋め込み構造体を初期化できない問題について説明します。
問題:
次のタイプを考慮してください:
type Value interface{} type NamedValue struct { Name string Value Value } type ErrorValue struct { NamedValue Error error }
試行中次の構文を使用して ErrorValue を初期化します:
e := ErrorValue{Name: "alpha", Value: 123, Error: err}
results
解決策:
埋め込み型 (名前なしフィールドとも呼ばれます) は、修飾されていない型名で参照されます。提供されたコードでは、ErrorValue を初期化するための構文が正しくありません。
Go 言語仕様に従って、埋め込みフィールドは、フィールド名を使用せずに型名を使用して初期化する必要があります。正しい構文は次のとおりです:
e := ErrorValue{NamedValue: NamedValue{Name: "fine", Value: 33}, Error: err}
または、コンポジットからフィールド名を省略することもできます。リテラル:
e := ErrorValue{NamedValue{"fine", 33}, err}
例:
package main import "fmt" type Value interface{} type NamedValue struct { Name string Value Value } type ErrorValue struct { NamedValue Error error } func main() { e := ErrorValue{NamedValue{Name: "alpha", Value: 123}, fmt.Errorf("some error")} fmt.Println(e) }
出力:
{NamedValue:{Name:alpha Value:123} Error:some error}
埋め込み構造体型の構文と使用法を理解することで、これらを Go プログラムで効果的に活用できます。
以上がGoで埋め込み構造体を正しく初期化するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。