方法介绍和使用|学习笔记

简介: 快速学习方法介绍和使用

开发者学堂课程【Go 语言核心编程 - 面向对象、文件、单元测试、反射、TCP 编程:方法介绍和使用】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/626/detail/9675


方法介绍和使用

 

内容介绍:

一、方法的应用场景

二、方法的定义

三、方法的使用举例

四、对案例的总结

 

一、方法的应用场景

在某些情况下,我们要需要声明(定义)方法。比如 Person 结构体:除了有一些字段外(年龄,姓名...)Person 结构体还有一些行为比如:可以说话、跑步...通过学习,还可以做算术题,这时就要用方法才能完成。

 

二、方法的定义

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

 

三、方法的使用

1.说明

func (n Numben) Int64(0 (int64, error)

该函数只能够与 number 相互关联,该函数就称作方法。因此方法和函数有很多相似的地方,但概念上还是有区别的。

type A struct {

Num int}

func (a A)test(){

fmt.PrintIn(a.Num)}

对上述语法的说明:

1) func (a A)test{} 表示 A 结构体有一方法,方法名为 test

2) (aA) 体现 test 方法是和 A 类型绑定的

2.举例

新建一个文件夹文件夹,命名为 methodDemo,新建一个文件 main.go。将通用代码(package main import "fmt")复制粘贴到新建文件 main.go 中,新建一个结构体type Person,字段为 string 类型,然后给 Person 类型绑定绑定一个方法:func (p Person) test(){fmt.Println("test()",p.Name)},该方法输出了其名字,可以定义一个 person 实例来验证。var p Person p.test() 为调用方法

,p变量会在调用的时候把自己传入到func (p Person) 中,类似于函数的传参由于输出时没有给p赋值,可以运行起来,但是没有名字。此时若给p赋值(p.Name = "tom"),相当于这个时候P的字段中存有值,此时输出就会有内容等于汤姆。

核心代码:

package main

import (

"fmt"

Type A struct{

Num int

}

//给A类型绑定一份方法

func (a A) test() {

fmt.Print1n("test() name=", a.num)

}

func main() {

}

为了方便学习,修改成如下:

package main

import (

"fmt"

type Person struct{

Name string

}

func (p Person) test() {

fmt.Print1n("test() name=", p.Name)

}

func main() {

var p Personp.Name = "tom"

p.test()

}

 

四、对案例的总结

1. test 方法和 Person 类型绑定

2.test 方法只能通过 Person 类型的变量来调用,而不能直接调用,也不能使用其它类型变量来调用,下面的调用方式都是错误的 var dog Dog 、dog.test() 、test()

3.func (p Person) test) f..p 表示哪个Person变量调用,这个p就是它的副本,这点和函数传参非常相似。

1.p这个名字,有程序员指定,但不是固定的,比如修改成 person 也是可以的。

 

相关文章
|
存储 安全 C++
C++ 类 & 对象初学者学习笔记
面向对象程序设计中最重要的一个概念是继承。继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易。这样做,也达到了重用代码功能和提高执行效率的效果。
91 0
|
设计模式 算法 关系型数据库
关于本人对学习知识的方法的理解
关于本人对学习知识的方法的理解
69 1
|
运维 Kubernetes 虚拟化
结课(有方法,请注意) | 学习笔记
快速学习结课(有方法,请注意)
结课(有方法,请注意) | 学习笔记
|
Java Scala 开发者
方法|学习笔记
快速学习方法。
方法|学习笔记
|
安全 开发者 Python
魔法方法介绍 | 学习笔记
快速学习 魔法方法介绍
魔法方法介绍 | 学习笔记
|
存储 PHP 开发者
类内部对象|学习笔记
快速学习类内部对象
类内部对象|学习笔记
|
Java 编译器 PHP
C++学习笔记1:类的使用
C++学习笔记1:类的使用1. 类的定义与使用2. 类的成员变量和成员函数3. 构造函数4. 析构函数5.5 友元函数和友元类
115 0
C++学习笔记1:类的使用
|
JSON 数据格式 开发者
方法的封装| 学习笔记
快速学习方法的封装
|
网络协议 编译器 测试技术
方法和函数区别说明|学习笔记
快速学习方法和函数区别说明
|
Java 开发者
大数字处理类|学习笔记
快速学习大数字处理类
133 0
大数字处理类|学习笔记