golang的方法值调用和方法表达式调用

package main

import (
   "fmt"
)

type B struct {
   Name   string
   Sex    string
   Age    int
}


func main() {
   info := map[string]interface{}{
      "name"     :  "xiaoli222",
      "age"  :  18,
      "sex"  :  "男"    ,
   }
   //t := A{
   // Name:"xiaoli333",
   // Age:18,
   // Sex:"男",
   //}
   t := B{}
   var manInfo B
   s,err := manInfo.SetManPoint(info)

   if err == nil {
      fmt.Println(s)
   }
   f1,err:= (*B).SetManPoint(&t,info)
   if err == nil {
      fmt.Println(f1)
   }

   //**************************************************************************

   s1,err := manInfo.SetManValue(info)
   if err == nil {
      fmt.Println(s1)
   }
   
   s2,err := B.SetManValue(t,info)
   if err == nil {
      fmt.Println(s2)
   }

}

func(a *B)  SetManPoint(manInfo map[string]interface{})(*B,error){
   a.Name     =  manInfo["name"].(string)
   a.Age  =  manInfo["age"].(int)
   a.Sex  =  manInfo["sex"].(string)
   return a,nil
}

func (a B)  SetManValue(manInfo map[string]interface{})(b B,err error){
   a.Name     =  manInfo["name"].(string)
   a.Age  =  manInfo["age"].(int)
   a.Sex  =  manInfo["sex"].(string)
   b = a
   return
}

猜你喜欢

转载自blog.csdn.net/u010412301/article/details/84672889