Skip to content

Latest commit

 

History

History
48 lines (28 loc) · 1.84 KB

5方法methode.md

File metadata and controls

48 lines (28 loc) · 1.84 KB

方法:

1、语法格式:

方法的声明:

func (recevier type) methodName (参数列表) (返回值列表){ 方法体 return 返回值 }

- 1.参数列表:表示方法的输入
- 2.recevier type:表示这个方法和type这个类型进行绑定,或者说该方法作用于type类型
- 3.recevier type:type可以是结构体,也可以是自定义类型
- 4.receiver:就是type类型的一个变量实例,比如:Person结构体的一个变量(实例)
- 5.参数列表:表示方法输入
- 6.返回值列表:表示返回值,可以多个
- 7.方法主体:表示为了实现某一功能代码块
- 8.return语句不是必须的。


结构体是值类型,如果修改结构体的变量值,可以通过结构体指针的方式处理。

golang的方法作用在指定的数据类型上的(即:和指定的数据类型绑定)

方法首字母大写是public  小写是private

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


2、函数和方法的区别

    - 1. 调用方式不一样
        函数的调用方式:  函数名(实参列表)

        方法的调用方式:变量.方法名(实参列表)
    - 2. 对于普通函数,接收者为值类型时,不能将指针类型的数据直接传递,反之依然。
    - 3.对于方法(如struct的方法),接收者为值类型,可以直接用指针类型的变量调用方法,反之依然。

    方法的总结:
    - 1.不管调用形式如何,真正决定是值拷贝还是地址拷贝,看这个方法是和哪个种类型绑定
    - 2. 如果是值类型,如,(person Person),则是值拷贝,如果是指针类型如,(person *Person),则是地址拷贝