函数是一组语句,可以在程序中重复使用。函数不会在页面加载时自动执行。函数将通过调用函数来执行。
创建函数
要创建(通常称为声明)一个函数,请执行以下操作:
- 使用
func
关键字。 - 指定函数的名称,后跟括号
()
。 - 最后,在花括号
{}
内添加定义函数应执行的代码。
语法
func 函数名() {
// 要执行的代码
}
调用函数
函数不会立即执行。它们被“保存以供以后使用”,并在调用时执行。
在下面的示例中,我们创建了一个名为 "myMessage()" 的函数。开括号 {
表示函数代码的开始,闭括号 }
表示函数的结束。该函数输出 "I just got executed!"。要调用函数,只需写下函数的名称,后面跟着两个括号 ()
:
示例
package main
import (
"fmt"
)
func myMessage() {
fmt.Println("I just got executed!")
}
func main() {
myMessage() // 调用函数
}
结果:
I just got executed!
一个函数可以被多次调用。
示例
package main
import (
"fmt"
)
func myMessage() {
fmt.Println("I just got executed!")
}
func main() {
myMessage()
myMessage()
myMessage()
}
结果:
I just got executed!
I just got executed!
I just got executed!
Go函数命名规则
- 函数名必须以字母开头。
- 函数名只能包含字母数字字符和下划线(A-z,0-9 和 _)。
- 函数名区分大小写。
- 函数名不能包含空格。
- 如果函数名由多个单词组成,可以使用多词变量命名的技巧。
参数和参数值
信息可以作为参数传递给函数。参数在函数内部充当变量。
在函数名后面,括号内指定参数及其类型。您可以添加任意数量的参数,只需用逗号分隔即可:
语法
func 函数名(参数1 类型, 参数2 类型, 参数3 类型) {
// 要执行的代码
}
带参数的函数示例
下面的示例有一个带有一个参数 fname
(类型为字符串)的函数。当调用 familyName()
函数时,我们还传递了一个名字(例如,Liam),并且这个名字在函数内部使用,输出多个不同的名字,但相同的姓氏:
示例
package main
import (
"fmt"
)
func familyName(fname string) {
fmt.Println("Hello", fname, "Refsnes")
}
func main() {
familyName("Liam")
familyName("Jenny")
familyName("Anja")
}
结果:
Hello Liam Refsnes
Hello Jenny Refsnes
Hello Anja Refsnes
注意:当将参数传递给函数时,它被称为参数。因此,从上面的示例中可以看出:fname
是参数,而Liam、Jenny 和 Anja 是参数值。
多个参数
在函数内部,您可以添加任意数量的参数:
示例
package main
import (
"fmt"
)
func familyName(fname string, age int) {
fmt.Println("Hello", age, "岁的", fname, "Refsnes")
}
func main() {
familyName("Liam", 3)
familyName("Jenny", 14)
familyName("Anja", 30)
}
结果:
Hello 3 岁的 Liam Refsnes
Hello 14 岁的 Jenny Refsnes
Hello 30 岁的 Anja Refsnes
希望这些信息能帮助您理解Go语言中的函数、参数和参数值的使用方式。如果您有任何其他问题,请随时提出。
返回值
如果您想让函数返回一个值,您需要定义返回值的数据类型(如int、string等),并在函数内部使用return关键字:
语法
func 函数名(参数1 类型, 参数2 类型) 类型 {
// 要执行的代码
return 输出
}
函数返回示例
在下面的示例中,myFunction()
接收两个整数(x 和 y),并返回它们的加法(x + y)作为整数(int):
示例
package main
import (
"fmt"
)
func myFunction(x int, y int) int {
return x + y
}
func main() {
fmt.Println(myFunction(1, 2))
}
结果:
3
命名返回值
在Go中,您可以为函数的返回值命名。
在这里,我们将返回值命名为 result
(类型为int),并使用“裸露”的返回(即,我们使用return语句而不指定变量名)返回值:
示例
package main
import (
"fmt"
)
func myFunction(x int, y int) (result int) {
result = x + y
return
}
func main() {
fmt.Println(myFunction(1, 2))
}
结果:
3
上面的示例也可以像这样写。在这里,return语句指定了变量名:
示例
package main
import (
"fmt"
)
func myFunction(x int, y int) (result int) {
result = x + y
return result
}
func main() {
fmt.Println(myFunction(1, 2))
}
将返回值存储在变量中
您也可以将返回值存储在变量中,像这样:
示例
package main
import (
"fmt"
)
func myFunction(x int, y int) (result int) {
result = x + y
return
}
func main() {
total := myFunction(1, 2)
fmt.Println(total)
}
多个返回值
Go函数也可以返回多个值。
在这里,myFunction()
返回一个整数(result)和一个字符串(txt1):
示例
package main
import (
"fmt"
)
func myFunction(x int, y string) (result int, txt1 string) {
result = x + x
txt1 = y + " World!"
return
}
func main() {
fmt.Println(myFunction(5, &q