```go
package main
var Book struct{
title string
price int
}
func main(){
}
```
上面的代码没有报错,不是用type定义结构体吗
`type`用来定义类型
`var`用来定义变量
`type 类型名 类型` 如`type NewInt int`
`var 变量名 类型` 如`var count int`
所以
``` go
var Book struct{
title string
price int
}
```
定义了一个名字为`Book`的结构体,其类型是struct那一坨,但一般不这样做,通常会先定义一个结构体类型,再定义一个对应的变量
``` go
type Book struct{
title string
price int
}
var book Book
```
匿名类型其实我们一直在用,只不多没有注意到罢了,比如平时使用的`var x interface{}`里面的`interface{}`就是一个匿名空接口,跟下面代码等价
``` go
type EmptyInterface interface {
}
var x EmptyInterface
```
#12
更多评论