type关键字
https://studygolang.com/articles/17179
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| package main
// 1. 定义结构体 type person struct { name string age int }
func main(){ p := person{"hello",12} p1 := person{"hello"} fmt.Println(p.age,p.name) fmt.Println(p1.name,p1.age) }
// 2. 类型等价定义,相当于类型重命名 type name string
func main(){ var myname name = "zhangyi" //l := []byte(myname) fmt.Println(myname) }
// 3. 结构体内嵌匿名成员 type person struct { string age int }
func main(){ p := person{"nihao",12} p2 := person{string:"world",age:18} fmt.Println(p.string,p2.string) }
// 4.接口类型定义 type Personer interface { Run() Name() string }
type person struct { name string age int } func (person) Run(){ fmt.Println("run") } func (p person) Name() string{ return p.name }
func main(){ var p Personer fmt.Println(p)
p = person{"hello",12} p.Run() fmt.Println(p.Name())
var p2 person = p.(person) fmt.Println(p2.age) if p3,ok := p.(person); ok{ fmt.Println(ok) fmt.Println(p3.age) } }
// 5.定义函数类型 type handler func(name string) int
func (h handler) add(name string) int{ return h(name) + 10 }
|