函数函数参数
形参:定义函数时,用于接收外部传入的数据,叫做形式参数,简称形参
实参:调用函数时,传给形参的实际的数据,叫做实际参数,简称实参。
传参方式
值传递(默认):
定义:指在调用函数时将实际参数复制一份传递到函数中
影响:在函数中如果对参数进行修改,将不会影响到实际参数func SwapByValPass(x,y int) int{
var temp int
temp=x
x=y
y=temp
return temp //交换前100,200,交换后不变
}
引用传递
定义:指在调用函数时将实际参数的地址传递到函数中
影响:在函数中对参数所进行的修改,将影响到实际参数
实际测试:参数值变化,但是参数地址不变func SwapByReferPass(x *int,y *int){
var temp int
temp = *x
*x=*y
*y=temp//交换前100,200,交换后200,100
}
闭包 匿名函数,可作为闭包。优越性在于可以直接使用函数内的变量,不必申明
方法一个方法就是一个包含了接受者的函数,接受者可以是命名类型或者结构体类型的一个值或者是一个指针。所有给定类型的方法属于该类型的方法集
// 普通函数
func function_name( [parameter list] ) [return_types] {
函数体
}
// 方法
func (variable_name variable_data_type) function_name() [return_type]{
/* 函数体*/
}
/* 定义结构体 */
type Circle struct {
radius float64
}
func main() {
var c1 Circle
c1.radius = 10.00
fmt.Println("圆的面积 = ", c1.getArea())
}
//该 method 属于 Circle 类型对象中的方法
func (c Circle) getArea() float64 {
//c.radius 即为 Circle 类型对象中的属性
return 3.14 * c.radius * c.radius
}
变量作用域
局部变量:函数内定义的变量,作用域只在函数体内
全局变量:函数外定义的变量,可以在整个包甚至外部包(被导出后)使用
全局变量与局部变量名称可以相同,但是函数内的局部变量会被优先考虑
形式参数:函数定义中的变量称为形式参数
|