开发者学堂课程【Go 语言核心编程 - 面向对象、文件、单元测试、反射、TCP 编程:方法的快速入门】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/626/detail/9676
方法的快速入门
内容介绍:
一、案例1
二、案例2
三、案例3
四、案例4
一、案例1——无形参,无返回值
给 Person 结构体添加 speak 方法,输出 xxx 是一个好人
func(p Person) speak(){
fmt.Println(p.Name,是一个"goodman~")
}
首先根据关键字写入 func(p Person),p 与 Person 绑定,前面给他一个名称,函数名叫 speak(),括号内无任何的形参,表明该方法不接受形参,fmt.Println(p.Name,是一个 "goodman~"即输出结果为 xxx 是一个 goodman。利用进行调用p.speak(),输出结果为汤姆是一个 goodman。
二、案例2
给 Person 结构体添加 jisuan 方法,可以计算从 1+...+1000 的结果,说明方法体内可以和函数一样,进行各种运算。
func (p Person) jisuan(
)
{
res :=
0
For
i:
=
1;i<=100
0
; i++ {
res
+
= i
}
fmt.Print1n(p.Name,“计算的结果是=",res)
}
写入 func (p Person) jisuan(),表示方法名为 jisuan,然后定义一个结果,res:=0,利用 for 循环,i=1,i<=1000,i++,进行累加 res+=i,未要求将结果返回,则直接输出fmt.Print1n(p.Name,“计算的结果是=",res)
利用 p.jisuan() 调用,运算结果与实际一样等于5050
三、案例3——接收参数
给 Person 结构体 jisuan2 方法,该方法可以接收一个参数 n,计算从 1+..tn 的结果
func (p Person) jisuan
2
(
n int)
{
res :=
0
For
i:
=
1;i<=
n
; i++ {
res
+
= i
}
fmt.Print1n(p.Name,“计算的结果是=",res)
}
输入 func (p Person) jisuan2(),要求可以接收一个数,这个数其实就是参数,写入()中,此例题与例2几乎一致,唯一的改变是把1000改成n。利用 p.jisuan2(10) 调用,完成1-10累加运算,括号中的值可以改为任意n
四、案例4——有返回值
给 Person 结构体添加 getSum 方法,可以计算两个数的和,并返回结果。
func (p Person)
getSum
(
n1 int,n2 int) int
{
r
eturn n1 + n2
该方法需要传入两个数值n1 和n2,一个返回结果int,如果有多个返回值,需要加上括号。因为要把结果返回即输入 return n1+n2,因为结果是返回而不是在自身的函数体内输出,因此调用的时候需要一个接收信息,利用 res := p.getsum(10,20) fmt.Println("res=", res) 调用,输出结果为 res=30,与实际一致。