go语言中的方法method

package main;

import "fmt"

//重新定义一个类型
//为该INT类型扩展方法
type INT int;

type A struct {
	name string;
}

type B struct {
	name string;
}

func main() {
	a := A{};
	a.Print();

	//指针传递
	a.Print2();
	fmt.Println(a);
	//同上
	(*A).Print2(&a);

	b := B{};
	b.Print();

	var c INT;
	c.Print();
}

//方法method
//GO中没有class,但有method

//为结构A绑定方法
func (a A) Print() {
	fmt.Println("A");
}

//指针传递
func (a *A) Print2() {
	//修改了变量的的值
	//方法中是可以访问结构的私有字段
	a.name = "A";
}

//为结构B绑定方法
func (b B) Print() {
	fmt.Println("B");
}

//给INT类型绑定Print方法
func (i INT) Print() {
	fmt.Println("INT");
}

  

原文地址:https://www.cnblogs.com/jkko123/p/6815906.html