GoLang学习

74次阅读

共计 1061 个字符,预计需要花费 3 分钟才能阅读完成。

Go 函数

Go 函数定义
func function_name([parameter list] ) [return_types] {
函数体
}

func:Go 的函数声明关键字,声明一个函数。
function_name:函数名称,函数名和参数列表一起构成了函数签名。
parameter list:参数列表,指定的是参数类型、顺序、及参数个数。参数是可选的,即函数可以不包含参数。参数就像一个占位符,这是参数被称为形参,当函数被调用时,将具体的值传递 给参数,这个值被称为实际参数。
return_types:返回类型,函数返回一列值。return_types 是该列值的数据类型。这里需要注意的是 Go 函数支持多返回值。有些功能不需要返回值,这种情况下 return_types 不是必须的。
函数体:函数定义的代码集合,表示函数完成的动作。

函数调用

1. 小写字母开头的函数只在本包内可见,大写字母开头的函数才能被其他包使用。

2. 同时这个规则也适用于变量的可见性,即首字母大写的变量才是全局的
func max(num1,num2 int) int {
var result int
if num1 > num1 {
result = num1
}else {
result = num2
}
return result
}

func main() {
var a int = 100
var b int = 200
var ret int
ret = max(a,b)
fmt.Println(ret)
}

多返回值
func swap(x,y string) (string,string) {
return y,x
}
func main() {
//a,b := swap(“hello”,”world”)
a,_ := swap(“hello”,”world”) // 只关注一个值可以使用下划线代替
fmt.Println(a)
}

函数参数

值传递:指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。
引用传递:是指在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。

* 值传递
c main() {
var a int = 100
var b int = 200
fmt.Println(“ 交换前 ”,a)
fmt.Println(“ 交换后 ”,b)
swap(a,b)
fmt.Println(“ 交换后 ”,a)
fmt.Println(“ 交换后 ”,b)
}
func swap(x,y int) int {
var temp int
temp = x
x = y
y = temp
return temp
}
* 执行效果

![clipboard.png](/img/bVbljsg)

正文完
 0