github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/go/types/struct.go (about) 1 // Copyright 2021 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package types 6 7 // Structはstruct型を表します。 8 type Struct struct { 9 fields []*Var 10 tags []string 11 } 12 13 // NewStructは、指定されたフィールドと対応するフィールドタグを持つ新しい構造体を返します。 14 // インデックスiを持つフィールドにタグがある場合、tags [i]はそのタグである必要がありますが、 15 // tagsの長さは、最大インデックスiのタグを保持するために必要なだけの長さである場合があります。 16 // したがって、フィールドにタグがない場合、tagsはnilである場合があります。 17 func NewStruct(fields []*Var, tags []string) *Struct 18 19 // NumFieldsは、struct内のフィールドの数を返します(空白や埋め込まれたフィールドを含む)。 20 func (s *Struct) NumFields() int 21 22 // Fieldは0 <= i < NumFields()という条件でi番目のフィールドを返します。 23 func (s *Struct) Field(i int) *Var 24 25 // Tagは0 <= i < NumFields()に対するi番目のフィールドタグを返します。 26 func (s *Struct) Tag(i int) string 27 28 func (t *Struct) Underlying() Type 29 func (t *Struct) String() string