Golang 函数
优质
小牛编辑
146浏览
2023-12-01
Go 语言和 C 语言一样也有函数的概念,Go 语言中函数除了定义格式和不用声明以外,其它方面几乎和 C 语言一模一样,格式:
func 函数名称(形参列表)(返回值列表){ 函数体; }
无参数无返回值函数
func say() { fmt.Println("Hello World!!!") }
有参数无返回值函数
func say(name string) { fmt.Println("Hello ", name) }
无参数有返回值函数
func sum() int { // 只有一个返回值时,返回值列表的()可以省略 return 1 + 1 }
有参数有返回值函数
func sum(a int, b int) int { return a + b }
和 C 语言函数差异
和C语言不同的是,Go语言中可以给函数的返回值指定名称
// 给返回值指定了一个名称叫做res, return时会自动将函数体内部res作为返回值 // 其实本质就是提前定义了一个局部变量res, 在函数体中使用的res就是这个局部变量,返回的也是这个局部变量 func sum() (res int) { res = 1 + 1 return }
和C语言不同的是,Go语言中的函数允许有多个返回值函数
func calculate(a int, b int) (sum int, sub int) { sum = a + b sub = a - b return }
相邻同类型形参OR返回值类型可以合并,可以将数据类型写到最后一个同类型形参OR返回值后面
// a, b都是int类型, 所以只需要在b后面添加int即可 func calculate(a, b int) (sum, sub int) { sum = a + b sub = a - b return }
和 C 语言不同的是 Go 语言中的函数不需要先声明在使用
package main import "fmt" func main() { say(); } func say() { // 在后面定义也可以在前面使用 fmt.Println("Hello World!!!") }