目录
1. 普通方法
package main
type Name struct {}
func call(name Name){
fmt.PrintLn(name)
}
func main() {
var name Name
call(name)
}
2. 实例方法
package main
type Name struct {}
func (name Name) call(i int) { // 只读,如需修改属性,需要传入指针: func (name *Name) call (){
fmt.Println(name)
}
func main() {
var name Name
name.call(123)
}
3. 接口方法
接口方法 和实例方法有关系
一个实例 实现了某个接口的所有方法,那么就算true,否则是false
一个实例可以,实现多个接口
type Base interface {
call(int)
}
type Base2 interface {
sell()
ces()
}
type Name struct {}
func (name Name) sell(){
fmt.Println("sell")
}
func (name Name) call(i int) {
fmt.Println(name)
data,err := interface{}(name).(Base) // 个人觉得此方法是判断 该实例有没有实现 接口的所有方法
data2,err2 := interface{}(name).(Base2) // 个人觉得此方法是判断 该实例有没有实现 接口的所有方法
fmt.Println("name type is ",reflect.TypeOf(name))
fmt.Println(data)
fmt.Println("name 实现了Base的所有方法\"",err)
fmt.Println("======")
fmt.Println("name type is ",reflect.TypeOf(name))
fmt.Println(data2)
fmt.Println("name 实现了Base2的所有方法",err2)
}
func main() {
var name Name
name.call(123)
}