Golang语言中的method是什么

栏目: Go · 发布时间: 6年前

内容简介:什么是method(方法)?method是函数的另外一种形态,隶属于某个类型的方法。method的语法:func (r Receiver) funcName (parameters) (result)。receiver可以看作是method的第一个参数,method并且支持继承和重写。

什么是method(方法)?method是函数的另外一种形态,隶属于某个类型的方法。method的语法:func (r Receiver) funcName (parameters) (result)。receiver可以看作是method的第一个参数,method并且支持继承和重写。

/**
 * 什么是method(方法)?method是函数的另外一种形态,隶属于某个类型的方法。
 * method的语法:func (r Receiver) funcName (parameters) (result)。
 * receiver可以看作是method的第一个参数,method并且支持继承和重写。
 */
package main

import (
	"fmt"
)

type Human struct {
	name string
	age  int
}

// 字段继承
type Student struct {
	Human  // 匿名字段
	school string
}
type Employee struct {
	Human   // 匿名字段
	company string
}

// 函数的另外一种形态:method,语法:func (r Receiver) funcName (parameters) (result)
// method当作struct的字段使用
// receiver可以看作是method的第一个参数,指针作为receiver(接收者)
// 指针作为receiver和普通类型作为receiver的区别是指针会对实例对象的内容发生操作,普通类型只是对副本进行操作
// method也可以继承,下面是一个匿名字段实现的method,包含这个匿名字段的struct也能调用这个method
func (h *Human) Info() {
	// method里面可以访问receiver(接收者)的字段
	fmt.Printf("I am %s, %d years old\n", h.name, h.age)
}

// method重写,重写匿名字段的method
// 虽然method的名字一样,但是receiver(接收者)不一样,那么method就不一样
func (s *Student) Info() {
	fmt.Printf("I am %s, %d years old, I am a student at %s\n", s.name, s.age, s.school)
}
func (e *Employee) Info() {
	fmt.Printf("I am %s, %d years old, I am a employee at %s\n", e.name, e.age, e.company)
}
func main() {
	s1 := Student{Human{"Jack", 20}, "tsinghua"}
	e1 := Employee{Human{"Lucy", 26}, "Google"}
	// 调用method通过.访问,就像struct访问字段一样
	s1.Info()
	e1.Info()
}

以上所述就是小编给大家介绍的《Golang语言中的method是什么》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

新媒体运营

新媒体运营

勾俊伟 / 人民邮电出版社 / 2018-5-1 / 39.80

本书全面介绍了新媒体运营以及新媒体运营各模块的具体内容。 第 1章重点介绍新媒体运营的基本概念,其中包括运营的定义、发展历史及专业术语; 第 2章重点介绍新媒体运营的职业发展,通过企业需求反推能力清单,引导读者全面了解新媒体运营的岗位及相关要求; 第3章重点介绍用户运营的方法与策略,包括描述用户画像、搭建用户体系、吸引精准用户及提升用户活跃度等具体技巧; 第4章重点介绍产品......一起来看看 《新媒体运营》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具