6、函数与方法-GOLANG

6、函数与方法-GOLANG
xiu函数
需求
某一块的代码需要重复执行,比如一个图书管理系统,我们不能为学校的每一个新生都写一串代码用if进行判断谁是谁来管理积分等操作,这个时候我们就需要某一块逻辑相同的代码针对不同的人来执行
函数声明
使用 func 关键字声明函数
关键字 函数名(参数类型) 返回值类型{
函数体内容
}
举个栗子
1 | package main |
我们main就是一个特殊的函数,整个go程序回先去找main函数进行执行,没有main函数程序跑不起来,
函数可以有多个参数或者多个返回值
函数调用
同一个包的函数只需要写函数名就可以,但是不同包的函数比如我们用的fmt.Println()就需要在函数前加上包名,并且各位盲点有没有发现一个华生,我们迄今为止调用的跨包函数都是大写字母开头,在go语言只有大写字母开头的函数才可以被其他包调用,相当与java里的public关键字
方法
与函数区别
方法和函数在很长一段时间里我都认为并没有区别,只是面向对象与面向过程的叫法不同,巴特,最近我悟了,
函数与方法最大的区别就在于有没有对象,对象如果不好了解可以带入现实的对象,都是人,有的人有对象,有的人没有对象,没错,说的就是我,没有对象,java中方法属于对象,而在go语言里我们先把对象和类型挂钩,也就是方法属于某个类型
方法声明
注意:预声明的int,float等类型无法关联方法
类型的声明需要用到type
type xiu string
xiu类型就是string类型的别名,他俩底层一样,但是确实不是一个类型,利用Printf打印类型就可以看出来,所以两者不能混用,比如不可以直接相加等操作
方法声明格式
关键字 接收者 方法名 返回类型
接收者只能有一个
栗子
编写一个函数实现开氏温度转化为摄氏度
1 | package main |
编写一个方法实现开氏温度转化为摄氏度
1 | package main |