go语言基础 方法 method

方法:规定对象的行为的。对象的行为功能。

func (r recver) 方法名(参数列表) (返回值类型){....}
函数:一段独立的功能,可以被直接调用
func 函数名(参数列表)(返回值类型){....}
函数名(实际参数)
r.方法名(实际参数)

package main

import "fmt"

//1.定义一个结构体
type Person struct {
   name string
   age int
   sex string
}

type Dog struct {
   sort string
   color string
}

// 2.定义一个方法
func (p Person) printInfo(){ // p-->p1
   //可以直接操作Person类的这个对象,就是p
   fmt.Printf("姓名:%s,年龄:%d,性别:%s\n",p.name, p.age,p.sex)
}

func (d Dog)printInfo()  {
   fmt.Printf("品种:%s,毛色:%s\n", d.sort,d.color)
}

func printInfo2(p Person)  {
   fmt.Printf("姓名:%s,年龄:%d,性别:%s\n",p.name, p.age,p.sex)
}



func fun1(a, b int)int{
   return a + b
}

func main()  {
   /*
   方法:method---->类的行为功能。
      接受者调用--->
      func (接受者) 方法名 (参数列表)(返回值列表){
         //...
      }
   函数:function
      可以直接调用的
      func 函数名(参数列表)(返回值列表){

      }

   方法和函数的区别:
      函数是定义功能,一段代码
      方法的某个类别的行为功能

      方法由于接受者不同,方法名可以一直,但是函数不能。go中没有函数重载
    */

    //1.创建一个对象
    p1 := Person{"王二狗",28,"男"}
    p1.printInfo()

    p2 := Person{"李小花",18,"女"}
    p2.printInfo()

   d1 := Dog{"中华田园犬","土黄色"}
   d1.printInfo()
   d2:=Dog{"哈士奇","灰白色"}
   d2.printInfo()



    printInfo2(p1) // 函数调用
    printInfo2(p2) // 函数调用
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章