Go 定义对象(类)的方法

 

demo.go(定义对象(类)的方法):

package main

import "fmt"

// type为类型取别名
type MyInt int  // 不允许为基本类型(int)对象定义方法。

// 定义对象(类)的方法:   func (对象类型参数)方法名(参数列表)(返回值列表){ }
func (obj MyInt) add(b int) int {  // 对象调用时,会自动将对象传给obj
	return int(obj) + b
}
// 如果想通过方法修改对象,那么建议传递对象的地址 (结构体是值传递,通过结构体的指针修改结构体(地址传递))  (也可以通过返回值修改对象)
//func (obj *MyInt) add() { }  // 对象调用时,会自动将对象的地址传给obj

func main() {
	var a MyInt = 5
	// 调用对象的方法
	sum := a.add(10)
	fmt.Println(sum)  // 15
	
	// 对象的方法名可以和函数名相同,对象的方法名可以和其他类型对象的方法名相同。(方法是和对象的类型绑定的) 
}

 

你可能感兴趣的:(Go基础)