• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

75_Go基础_1_42方法

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
 1 package main
 2 
 3 import "fmt"
 4 
 5 //1.定义一个工人结构体
 6 type Worker struct {
 7     name string
 8     age  int
 9     sex  string
10 }
11 
12 type Cat struct {
13     color string
14     age   int
15 }
16 
17 // 2.定义行为方法
18 func (w Worker) work() { //w = w1
19     fmt.Println(w.name, "在工作。。。")
20 }
21 
22 func (p *Worker) rest() { //p = w2 ,p = w1的地址
23     fmt.Println(p.name, "在休息。。")
24 }
25 
26 func (p *Worker) printInfo() {
27     fmt.Printf("工人姓名:%s,工人年龄:%d,工人性别:%s\n", p.name, p.age, p.sex)
28 }
29 
30 func (p *Cat) printInfo() {
31     fmt.Printf("猫咪的颜色:%s,年龄:%d\n", p.color, p.age)
32 }
33 
34 func main() {
35     /*
36         方法:method
37             一个方法就是一个包含了接受者的函数,接受者可以是命名类型或者结构体类型的一个值或者是一个指针。
38             所有给定类型的方法属于该类型的方法集
39 
40 
41         语法:
42             func (接受者) 方法名(参数列表)(返回值列表){
43 
44             }
45 
46         总结:method,同函数类似,区别需要有接受者。(也就是调用者)
47 
48         对比函数:
49             A:意义
50                 方法:某个类别的行为功能,需要指定的接受者调用
51                 函数:一段独立功能的代码,可以直接调用
52 
53             B:语法
54                 方法:方法名可以相同,只要接受者不同
55                 函数:命名不能冲突
56 
57     */
58 
59     w1 := Worker{name: "王二狗", age: 30, sex: ""}
60     w1.work() // 王二狗 在工作。。。
61 
62     w2 := &Worker{name: "Ruby", age: 34, sex: ""}
63     fmt.Printf("%T\n", w2) // *main.Worker
64     w2.work()              // Ruby 在工作。。。
65 
66     w2.rest() // Ruby 在休息。。
67     w1.rest() // 王二狗 在休息。。
68 
69     w2.printInfo() // 工人姓名:Ruby,工人年龄:34,工人性别:女
70     c1 := Cat{color: "白色的", age: 1}
71     c1.printInfo() // 猫咪的颜色:白色的,年龄:1
72 
73 }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap