Golang基础(七)——方法method

Golang基础(七)——方法method

@([07] golang)[Go总结]

可以对包内的任意类型定义任意方法,但不能对来自其他包的类型或基础类型定义方法(可以通过自定义底层类型为基础类型的新类型,再对自定义的类型定义方法)。

方法只是一个含有特定接收者参数的函数。

一个方法的接收者必须是一个该类型的值或者该类型值的指针。

任何一个给定的类型的每个方法名必须唯一,不能同时定义两个相同名字的方法,并且golang中方法不支持重载方法。

声明一个结构的方法

// func(变量名 变量类型) 方法名(方法参数){
// 方法实现
// }
func (b B) Print() {
    fmt.Println("B")
}

type定义的任意类型都可以声明方法

package main

import "fmt"
// 定义一个底层类型为int的TZ类型
type TZ int

func main() {
    var a TZ
    a.Print()
}
func (a *TZ) Print() {
    fmt.Println("TZ")
}
接收者为指针的方法

使用类型的指针作为方法的接收者的好处:

  1. 可以避免在每个方法调用中进行值拷贝(在大的类型结构体中效率更高);
  2. 可以在方法中修改接收者指向的值
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容