如下代码:
go语言中的struct无处不在

//第二种实例化方式,顺序形式
	c2 := Course{"scrapy", 100, "https://www.imooc.com"}
	fmt.Println(c2)

	//3.如果一个指向结构体的指针,通过结构体指针获取对象的值
	c3 := &Course{"tornado", 100, "https://www.imooc.com"}
	fmt.Printf("%T\n", c3)
	fmt.Println((*c3).name, (*c3).price, (*c3).url)
	fmt.Println(c3.name, c3.price, c3.url) //这里是go语言的一个语法糖

	//4.结构体的0⃣️值,go语言会默认给每个字段采用默认值
	c4 := Course{}
	fmt.Println(c4.price)
	//5.多种方式零值初始结构体
	var c5 Course = Course{}
	var c6 Course
	var c7 *Course = new(Course)
	fmt.Println(c5.price)
	fmt.Println(c6.price)
	fmt.Println(c7.price)

	//6.结构体是值类型
	c8 := Course{"scrapy", 120, "https://www.imooc.com"}
	c9 := c8
	fmt.Println(c8)
	fmt.Println(c9)
	c8.price = 200
	fmt.Println(c8)
	fmt.Println(c9)

	//7.结构体占用内存的大小,可以使用sizeof来查看对象占用的类型
	fmt.Println(unsafe.Sizeof(1))
	//go语言的string的本质,其实string是一个结构体
	fmt.Println(unsafe.Sizeof("helooslfjdlksfjsdlfkjs"))

	//8.slice的大小
	type slice struct {
		array unsafe.Pointer
		len   int
		cap   int
	}
	s1 := []string{"math", "chinese", "englist"}
	fmt.Println(unsafe.Sizeof(s1))

	m1 := map[string]string{
		"bobby":  "math",
		"bobby2": "chinese",
		"bobby3": "ebgkust"}
	fmt.Println(unsafe.Sizeof(m1))