type Issue struct { SysId uuid.UUID `json:"sysid" maelstrom:"required"` } func (i *Issue) Unmarshal(data []byte) error { err := json.Unmarshal(data, i) if err != nil { slog.Error(err.Error()) return err } fields := reflect.ValueOf(i).Elem() for i := 0; i < fields.NumField(); i++ { maelstromTags := fields.Type().Field(i).Tag.Get("maelstrom") if strings.Contains(maelstromTags, "required") && fields.Field(i).IsZero() { return errors.New("Required field is missing." + fields.Field(i)) } } return nil }
上記のコードの 1 行:
リーリーエラー メッセージに現在のフィールドの名前を含めたいと考えています。
これは私が受け取ったエラーです:
リーリー私もこれを試してみました:
リーリーしかし、私は理解しています:
リーリー私もこれを試してみました:
リーリーしかし、私は理解しています:
リーリー誰か私に正しい方向を示したり、解決策を提供してもらえますか?ありがとう!
型から StructField を取得します。 StructField から フィールド名を取得します。
リーリー以上がGo リフレクション 現在のフィールド名を取得しますが、型が一致しない型指定されていない文字列でエラーが発生しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。