Golang種結構體的5種初始化方式


package main

import (
	"fmt"
)

type Cat struct{
	Name string
	Age int
}

func main(){
	// 第一種方式,先聲明再初始化
	var cat1 Cat
	cat1.Name = "cat1"
	cat1.Age = 1
	fmt.Println("cat1 =", cat1)

	// 第二種方式,定義的時候按照字段的順序傳入值來初始化
	var cat2 Cat = Cat{"cat2", 2}
	fmt.Println("cat2 =", cat2)
	
	// 第三種方式,定義的時候按照map的形式指定字段的值來初始化
	var cat3 Cat = Cat{Age: 3, Name: "cat3"}
	fmt.Println("cat3 =", cat3)

	// 第四種方式,使用new返回一個指定類型的指針,然后初始化
	var cat4 *Cat = new(Cat)
	(*cat4).Name = "cat4"
	(*cat4).Age = 4
	// 注意,這里有語法糖,可以直接 cat4.Name = "cat4",底層會加上*
	fmt.Println("cat4 =", *cat4)

	// 第五種方式,使用&返回一個指定類型的指針,
        // 然后初始化(也可以按照map的形式指定字段的值,或者按順序傳入字段的值來直接初始化,類似於方式2和3)
	var cat5 *Cat = &Cat{}
	(*cat5).Name = "cat5"
	(*cat5).Age = 5
	// 注意,這里有語法糖,可以直接 cat5.Name = "cat5",底層會加上*
	fmt.Println("cat5 =", *cat5)
}

結果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM