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