我是靠谱客的博主 淡淡小鸽子,最近开发中收集的这篇文章主要介绍接受者java_Go语言方法的 值接受者 和 指针接受者 的区别,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

首先说下结论

1. 无论方法的接受者是值接受者还是指针接受者,对象值调用该方法和对象指针调用该方法都是可行的。

2. 当方法接受者为指针接受者时,对象的值调用该方法和指针调用该方法都会操作对象本身。

3. 当方法接受者为值接受者时,对象的值调用该方法和指针调用该方法都会操作对象的副本,对对象本身无影响。

package method

import "fmt"

type student struct {

name string

age int8

}

func (student student) getName() string {

student.name = "jack"

return student.name

}

// 接受者为指针的方法

//func (student *student) getName() string {

//student.name = "jack"

//return student.name

//}

func (student student) getAge() int8 {

student.age = 22

return student.age

}

// 接受者为指针的方法

//func (student *student) getAge() int8 {

//student.age = 22

//return student.age

//}

func TestMethod() {

s := student{name: "tom", age: 11}

// 值调用方法

//fmt.Println("age: ", s.getAge())

//fmt.Println("name: ", s.getName())

// 指针调用方法

fmt.Println("age: ", (&s).getAge())

fmt.Println("name: ", (&s).getName())

// 查看调用方法后,对象本身的影响

fmt.Println(s.age)

fmt.Println(s.name)

fmt.Println((&s).age)

fmt.Println((&s).name)

}

最后

以上就是淡淡小鸽子为你收集整理的接受者java_Go语言方法的 值接受者 和 指针接受者 的区别的全部内容,希望文章能够帮你解决接受者java_Go语言方法的 值接受者 和 指针接受者 的区别所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部