函数

2022-02-08 GoLang 大约 2 分钟

为完成某一功能的程序指令(语句)的集合,称为函数。主要为了提高代码的复用性,减少代码的沉余,代码的维护性也提高了

# 基本使用

命名规范:

  • 遵循标识符命名规范。
  • 首字母不能是数字。
  • 首字母大写该函数可以被本包文件和其它包文件使用。
  • 首字母小写只能被本包文件使用,其他包文件不能使用。

语法:

func 函数名(形参列表) (返回值类型列表) {
    // ...逻辑代码
    return [返回值列表]
}
1
2
3
4
// demo.go
package main

import "fmt"

var n4 = 34
var n5 = 23

// 声明一个函数
func cal(n1 int, n2 int) int {
	var num int = n1 + n2
	return num
}

func main() {
    // 调用函数
	num := cal(n4, n5)
	fmt.Println(num) // 57
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 返回值

# 没有返回值

// 声明一个函数
func cal(n1 int, n2 int) {
	var num int = n1 + n2
    fmt.Println(num)
}
1
2
3
4
5

# 一个返回值

// 声明一个函数
func cal(n1 int, n2 int) int {
	var num int = n1 + n2
	return num
}
1
2
3
4
5

如果返回值只有一个的话,返回值的类型int可以不加括号。

# 两个返回值

package main

import "fmt"

var n4 = 34
var n5 = 23

func cal(n1 int, n2 int) (int, int) {
	var num int = n1 + n2
	var result int = n1 - n2
	return num, result
}

func main() {
	num, result := cal(n4, n5)
	fmt.Println(num, result) // 57 11
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

如果你只想接收一个参数,那么你可以使用占位符_代替。

func main() {
	num, _ := cal(n4, n5)
	fmt.Println(num) // 57
}
1
2
3
4

_会被go忽略。

# 通过指针改变值

通过指针改变函数外的值

package main

import "fmt"

func test(num *int) {
	*num = 30
}

func main() {
	var num int = 0
	test(&num)
	fmt.Println(num) // 30
}
1
2
3
4
5
6
7
8
9
10
11
12
13

# 自定义数据类型

为了简化数据类型定义,Go支持自定义数据类型

语法:

type 自定义数据类型名 数据类型
1
func main() {
	// 自定义数据类型 myInt
	type myInt int
	var a myInt = 30
	fmt.Println(a) // 30
}
1
2
3
4
5
6
上次编辑于: 2023年7月4日 09:36