36_方法集的使用

所谓方法集,就是go编译器,可以根据 传递的接收者(receiver)类型,自动转换成所需的类型

代码如下:package main

import "fmt"

type Student struct {
	//和变量定义不同,不要写var关键字
	Id   int
	Name string
	Sex  byte
	Age  int
	Addr string
}

func (s Student) PrintValue() {
	fmt.Println("该方法为值传递")

}
func (s *Student) Printpointer() {
	s.Name = "steven"
	fmt.Println("该方法为引用传递")

}
func main() {
	

	//类型为T的方法集
	s1 := Student{1, "zhao", ‘m‘, 24, "js"}

	//下面两者调用都可以
	s1.Printpointer() //该方法为引用传递
	//先把s1转换成(&s1),然后是(&s1).printpointer
	(&s1).Printpointer() //该方法为引用传递

	//下面两种方法类似
	s1.PrintValue()
	(&s1).PrintValue() //也是接收者先进行类型转换,然后在调用方法

	//类型为*T 的方法集
	var s2 *Student = &Student{2, "zhao", ‘m‘, 24, "js"}
	(*s2).PrintValue()
	s2.PrintValue()
	\
	s2.Printpointer()
}

原文地址:https://www.cnblogs.com/zhaopp/p/11565367.html

时间: 2024-08-29 07:58:41

36_方法集的使用的相关文章

我的JS方法集(拿来分享一下)

数组方法集 Angela.array = { //# 数组方法 // index, 返回位置! 不存在则返回 -1: index: function (t, arr) { //# 返回当前值所在数组的位置 if (arr.indexOf) { return arr.indexOf(t); } for (var i = arr.length ; i--;) { if (arr[i] === t) { return i * 1; } }; return -1; } //返回对象 的 键值! 返回值

JS方法集

数组方法集 Angela.array = { //# 数组方法 // index, 返回位置! 不存在则返回 -1: index: function (t, arr) { //# 返回当前值所在数组的位置 if (arr.indexOf) { return arr.indexOf(t); } for (var i = arr.length ; i--;) { if (arr[i] === t) { return i * 1; } }; return -1; } //返回对象 的 键值! 返回值

Go中的方法集

类型*T方法集 // code_018_struct_method_set project main.go package main import ( "fmt" ) //类型*T方法集 type Person struct { name string sex byte age int } //指针作为接收者,引用语义 func (p *Person) SetInfoPointer() { (*p).name = "yoyo" p.sex = 'f' p.age =

Java数组去掉反复的方法集

经经常使用到,有时候不仅仅是简单的基本类型,那种能够用set集合去重,好多时间用到的是我们自己定义的类型,以下举个样例(我这儿就那int举例了): 方法一. 这样的类似与选择排序算法,首先我们取i值,然后将i之后的全部反复的去掉.详细实现例如以下: import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; /** * 创建时间:2014-11-18 下午3:26:35 * * @author zhangtia

常用函数和方法集

1.DateTime 数字型 System.DateTime currentTime=new System.DateTime(); 1.1 取当前年月日时分秒 currentTime=System.DateTime.Now; 1.2 取当前年 int 年=currentTime.Year; 1.3 取当前月 int 月=currentTime.Month; 1.4 取当前日 int 日=currentTime.Day; 1.5 取当前时 int 时=currentTime.Hour; 1.6 取

Javascript标准类型的方法集

1 array.concat(item...) concat方法会产生一个新数组,将一个或多个item附加在数组之后 var a = ['a', 'b', 'c'] var b = ['x', 'y', 'z'] var c = a.concat(b, true);//b 是 ['a', 'b', 'c', 'x', 'y', 'z', true] 2 array.join(separator) join方法把一个array构造成一个字符串,并用separator将他们分隔开来 var a =

Android错误解决方法集

1 android java.net.UnknownHostException: Unable to resolve host "-": No address associated 错误 我在android开发的时候经常会遇到这个错误,一般来说,造成这种错误的最普遍情况有两种: 1.android设备网络连接没打开,例如3G网络和WIFI网络 所以,如果遇到这种错误时,请先查看网络是否已正常连接. 2.Manifest文件没有标明网络访问权限 如果确认网络已经正常连接并且还是出这种错误

Utils工具方法集插件详解

var Utils = function(){}; Utils.text = { stripTags: function (val) { return val.replace(/<\/?[^>]+>/gi, "");   //正则表达式中的<\/?其实就是匹配</或<,后面的[^>]+其实就是匹配不是>的任何一个或多个字符,因此此正则可以匹配<div>,</div>,<input type="tex

C#学习追根溯源之集合方法集

System.Collections命名空间中的枚举器接口(IEnumerator) ***attention field :   object Current{get;} ***interface method: bool MoveNext() ***interface method: void Reset(); using System;using System.Runtime.InteropServices;namespace System.Collections{    // Summa