Go-方法

一.介绍

    Golang中的方法是作用在指定的数据类型上的(即:和指定的数据类型绑定),因此自定义类型,都可以有方法,而不仅仅是struct

  方法的声明和调用

   type A struct{

        Num int

    }

func (a  A)test(){    //  

      fmt.Println(a.Num)

   }

说明:1.表示 A 结构体有一个方法叫 test 

        2.(a A)体现test方法是和A类型绑定的,a是形参可以任意改变,不是固定的

          

 1.test()方法只能通过Person类型的变量来调用,而不能直接调用,也不能使用其它类型变量

 小案例:

           1.给person结构体jisuan方法,接收一个数n,计算从1到n的和

            

       2.给person结构体添加getsum方法,计算两个数的和,并返回结果

          

方法的调用和传参机制原理:

 说明:方法的调用和传参机制和函数基本一样,不一样的地方是方法调用时,会将调用方法的变量,当做实参也传递给方法。

       

  方法注意事项和细节讨论

   1.结构体类型是值类型,在方法调用中,遵守值类型的传递机制,是值拷贝传递方式

   2.如果程序员希望在方法中,修改结构体变量的值,可以通过结构体指针的方式来处理

   3.Golang中的方法作用在指定的数据类型上的(即:和指定的数据类型绑定),因此自定义类型,都 可以有方法,而不仅仅是struct,比如int,float32等都可以有方法

   4.方法的访问范围控制的规则,和函数一样。方法名首字母小写,只能在本包访问,方法首字母        大写,可以在本包和其他包访问

   5.如果一个变量实现了String()这个方法,那么fmt.Println默认会调用这个变量的string()输出

方法的声明定义

          func (receiver  type)methodName(参数列表)(返回值列表){

                 方法体

                  return 返回值

           }

        1.参数列表:表示方法输入

        2.receiver type:表示这个方法和type这个类型进行绑定,或者说该方法作用于type类型

        3.receiver type:type可以是结构体,也可以其他的自定义类型

        4.reciver:就是type类型的一个变量(实例) 比如:Person结构体的一个变量(实例)

        5.返回值列表:表示返回的值可以是多个

        6.方法主体:表示为了实现某一功能代码块

        7.return语句不是必须的

方法和函数的区别

 1.调用方式不一样

    函数的调用方式:              函数名(实参列表)

    方法的调用方式:              变量.方法名(实参列表)

2.对于普通函数,接收者为值类型时,不能将指针类型的数据直接传递,反之亦然

3.对于方法(如:struct方法),接收者为值类型时,可以直接用指针类型的变量调用方法,反过来同样也可以

面对面编程应用实例

         

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老实憨厚的腾锅锅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值