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");
}

  

相关文章:

  • 2022-12-23
  • 2023-03-19
  • 2021-05-25
  • 2021-05-17
  • 2021-12-03
  • 2021-07-16
  • 2022-01-09
猜你喜欢
  • 2021-10-24
  • 2022-03-01
  • 2021-09-08
  • 2021-11-13
  • 2022-12-23
  • 2022-01-19
相关资源
相似解决方案