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
// 對象的方法名可以和函數名相同,對象的方法名可以和其他類型對象的方法名相同。(方法是和對象的類型綁定的)
}