go当中寄生于变量的方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go当中寄生于变量的方法相关的知识,希望对你有一定的参考价值。

这个东东,好像其它语言很少见呢。

印象中,ruby是可以这样的。

技术分享

package main

import (
	"fmt"
)

type user struct {
	name  string
	email string
}

//方法与函数的不同之处在于:函数是独立调用的,而方法寄生于变量来调用
//值接收者,主要用于不改变接收者的方法。
func (u user) notify() {
	fmt.Printf("Sending User Email to %s<%s>\\n",
		u.name,
		u.email)
}

//指针接收者,主要用于要改变接收者的方法。
func (u *user) changeEmail(email string) {
	u.email = email
}

func main() {
	bill := user{"Bill", "[email protected]"}
	bill.notify()

	lisa := &user{"Lisa", "[email protected]"}
	//go编译会执行的动作:(*lisa).notify()
	lisa.notify()

	//go在背后会执行的动作:(&bill).changeEmail ("[email protected]")
	bill.changeEmail("[email protected]")
	bill.notify()

	lisa.changeEmail("[email protected]")
	//go编译会执行的动作:(*lisa).notify()
	lisa.notify()
}

  技术分享

以上是关于go当中寄生于变量的方法的主要内容,如果未能解决你的问题,请参考以下文章

菌类:松菌松茸

go——切片

npm : 无法加载文件 D:softcodeProcess ode ode_global pm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.micr +(代码片段

对Java方法方法重载的理解

GoLang学习之变量定义和初始化

解决go: go.mod file not found in current directory or any parent directory; see ‘go help modules‘(代码片段