type
通过关键字type
可以自定义类型
package main
import "fmt"
//newint 是一个全新类型,但是它具有int类型的特性。
type newint int
func main() {
var p newint
fmt.Println(p)
}
输出:
0
Process finished with exit code 0
类型别名:
type rune = int32
type byte = uint8
struct
通过关键字struct
来定义一个结构体。
结构体在go语言中,就像其他语言中的类的概念。但是在go语言中没有类,结构体在go语言中比类更有灵活性和扩展性。
基本结构如下:
type 类型名 struct {
字段名 字段类型
字段名 字段类型
...
}
类型名在同一包里是唯一的。
字段名在同一结构体中是唯一的。
同样类型的字段可以写在同一行,字段名用逗号(,
)分割。
举个栗子:
package main
import "fmt"
type person struct {
name string
age int
}
func main() {
//结构体实例化,开始分配内存。
var p person
p.name = "tom"
p.age = 24
fmt.Println(p)
}
输出:
{tom 24}
Process finished with exit code 0
匿名实例化:
package main
import "fmt"
func main() {
var p struct { //区别在这
name string
age int
}
p.name = "tom"
p.age = 24
fmt.Println(p)
}
输出与上个栗子结果相同。