Go Type 使用場景

laosan123發表於2021-10-20

type使用場景

1.定義結構體

// 定義商標結構
//將Brand定義為如下的結構體型別
type Brand struct {
}
// 為商標結構新增Show()方法
func (t Brand) Show() {
}

2.作別名

在 Go 1.9 版本之前定義內建型別的程式碼是這樣寫的:
type byte uint8
type rune int32
而在 Go 1.9 版本之後變為:
type byte = uint8
type rune = int32

區分型別別名與型別定義

// 將NewInt定義為int型別
type NewInt int
// 將int取一個別名叫IntAlias
type IntAlias = int
func main() {
    // 將a宣告為NewInt型別
    var a NewInt
    // 檢視a的型別名
    fmt.Printf("a type: %T\n", a)
    // 將a2宣告為IntAlias型別
    var a2 IntAlias
    // 檢視a2的型別名
    fmt.Printf("a2 type: %T\n", a2)
}

a type: main.NewInt
a2 type: int

批量定義結構體

type (
    // A PrivateKeyConf is a private key config.
    PrivateKeyConf struct {
        Fingerprint string
        KeyFile     string
    }

    // A SignatureConf is a signature config.
    SignatureConf struct {
        Strict      bool          `json:",default=false"`
        Expiry      time.Duration `json:",default=1h"`
        PrivateKeys []PrivateKeyConf
    }
)
單個定義結構體
type PrivateKeyConf struct {
    Fingerprint string
    KeyFile     string
}

type SignatureConf struct {
    Strict      bool          `json:",default=false"`
    Expiry      time.Duration `json:",default=1h"`
    PrivateKeys []PrivateKeyConf
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章