中去的结构体之方法方法初体验

  
 <代码>//main.go code_017_struct_method_usage项目
  主要包
  
  导入(
  “fmt”
  )
  
  敏int类型
  
  func(敏)添加(b敏敏){
  返回一个+ b
  }
  
  函数添加(a、b敏敏){
  返回一个+ b
  }
  
  人型结构{
  名称字符串
  性字节
  年龄int
  }
  
  func (p人)PrintInfo () {
  fmt.Println (p.name p.a ge)
  }
  
  func (p *人)SetInfoPointer () {
  (* p) . name=" god_girl "
  p。性别=1
  p。年龄=22
  }
  
  func (p人)SetInfoValue () {
  p.name=" god_like "
  p。性别=1
  p。年龄=23
  }
  
  函数main () {/*
  带有接收者的函数,我们称之为方法(方法)。本质上,一个方法则是一个和特殊类型关联的函数。
  func(接收机ReceiverType) funcName(参数){结果}
  1)参数接收机可任意命名。如方法中未曾使用,可省略参数名。
  ?参数接收器类型可以是T或* T·基类型T不能是接口或指针。
  ?不支持重载方法,也就是说,不能定义名字相同但是不同参数的方法。
  2)在去语言中,可以给任意自定义类型(包括内置类型,但不包括指针类型)添加相应的方法。
  
  *///1)基本使用
  var敏=1
  var b敏=1
  
  fmt.Println (“a.Add (b)=", a.Add (b))
  fmt.Println(“添加(a, b)=?添加(a, b))//2)结构体作为接收者
  p:=人{“ck_god”, 0, 18}
  p.PrintInfo ()//3)结构体的值语义和引用语义
  
  p1:=人{“wanglaoji”, 0, 27}
  fmt。Println(“函数调用前=",p1)
  (和p1) .SetInfoPointer ()
  fmt。Println(“函数调用后=",p1)
  
  fmt.Println (“==========================")
  p2:=人{“ck_god”, 0, 18}
  fmt。Println(“函数调用前=",p2)
  p2.SetInfoValue ()
  fmt。Println(“函数调用后=",p2)//函数调用后={迈克109 18岁}
  
  }
   之前

中去的结构体之方法方法初体验