Golang基础(七)——方法method

2017-12-10  本文已影响0人  Eric木子

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. 可以在方法中修改接收者指向的值
上一篇 下一篇

猜你喜欢

热点阅读