go语言结构体

1.type关键字

import "fmt"

//声明一种数据类型myint,是int的一个别名
type myint int

func main()  {
	var a myint =10
	fmt.Println("a=",a)
	fmt.Printf("type of a=%T\n",a)
}

2.结构体声明

package main

import "fmt"


type Book struct {
	title string
	auth string
}

//结构体传参
func ChangeBook(book Book)  {
	//传递一个副本,调用此函数并不会发生改变
	book.auth="xiaoz"
}

func ChangeBook1(book *Book)  {
	book.auth="xz"
}


func main()  {
	var mybook Book
	
	//结构体赋值
	mybook.title="golang"
	mybook.auth="xiaozhang"

	//%v表示输出任意类型
	fmt.Printf("%v\n",mybook)
	
	//此时输出的结构体值没有变
	ChangeBook(mybook)
	fmt.Printf("%v\n",mybook)

	ChangeBook1(&mybook)

	fmt.Printf("%v\n",mybook)
}