Go 语言 中 函数 可以不返回任何值,也可以返回一个或者多个值,其他的编程语言的函数一般只可以不返回值,最多只能返回一个值,这是 Go 语言函数与其他编程语言函数的区别。
同时,如果相邻的几个函数返回值的类型相同,那么我们可以省略前几个返回值的类型,只需要写最后一个返回值的类型即可。
func funcName(param1, param2 paramType1, ...){
//执行语句...
}
这里的函数 funcName,没有返回任何的值,因此没有返回值列表,同时,在函数体里面不需要使用 return 语句。
func funcName(param1, param2 paramType1, ...)(returnType1, returnType2, ...){
//执行语句...
return 返回值列表
}
函数的返回值可以指定一个或者多个,当返回值是多个时,需要将 returnType 的列表使用小括号括起来,不然语法会报错。
在函数返回多个值时,调用函数时,也必须使用相对于的参数个数来接受返回值,如果不需要的返回值,我们可以使用匿名变量来接受保存。
Go 语言函数,可以不返回任何值
package main
import (
"fmt"
)
func printline(){
fmt.Println("========================================")
}
func main() {
fmt.Println("嗨客网(www.haicoder.net)")
//Go语言函数,可以不返回任何值
fmt.Println("嗨客网")
printline()
fmt.Println("HaiCoder")
}
程序运行后,控制台输出如下:
我们定义了一个函数 printline,该函数只实现了打印一个换行间隔符的作用,因此该函数没有任何函数参数,同时也没有任何的函数返回值。
因为没有任何的函数返回值,因此在函数体里面,不需要写任何的 return 语句。
函数只返回一个值
package main
import (
"fmt"
)
func gcdNormal(x, y int) int {
var n int
if x > y {
n = y
} else {
n = x
}
for i := n; i >= 1; i-- {
if x%i == 0 && y%i == 0 {
return i
}
}
return 1
}
func main() {
fmt.Println("嗨客网(www.haicoder.net)")
//函数只返回一个值
returnVal := gcdNormal(10,20)
fmt.Println("returnVal =", returnVal)
}
程序运行后,控制台输出如下:
我们定义了一个函数 gcdNormal,传入两个 int 类型 的参数 a 和 b,函数返回一个 int 类型的变量。
在 main() 函数里面,我们调用了 gcdNormal 函数,并传入了两个参数 10 和 20,使用 gcd 变量来接受 gcdNormal 函数返回的值,最后使用 Println() 函数打印最后的结果。
Go 语言的函数可以返回多个值
package main
import (
"fmt"
"math"
)
func getPageCount(pageSize int)(bool, int){
if pageSize <= 0{
return false, 0
}
pageCount := math.Ceil(float64(100/pageSize))
return true, int(pageCount)
}
func main() {
fmt.Println("嗨客网(www.haicoder.net)")
//Go语言的函数可以返回多个值
if isOk, pageCount := getPageCount(10); !isOk{
fmt.Println("Error")
}else{
fmt.Println("Ok, PageCount =", pageCount)
}
}
程序运行后,控制台输出如下:
我们定义了一个函数 getPageCount,传入两个 int类型的参数 pageSize,函数返回一个 bool 类型的变量表示函数是否执行成功,和一个 int 类型的变量表示最终由多少页数据。
在 main() 函数里面,我们调用了 getPageCount 函数,并传入参数 10,同时,使用两个变量来接受函数的返回值列表。
Go 语言中函数可以不返回任何值,也可以返回一个或者多个值。Go 语言函数不返回任何值语法:
func funcName(param1, param2 paramType1, ...){
//执行语句...
}
Go 语言函数返回多个值语法:
func funcName(param1, param2 paramType1, ...)(returnType1, returnType2, ...){
//执行语句...
return 返回值列表
}
当返回值是多个时,需要将 returnType 的列表使用小括号括起来,不然语法会报错。调用函数时,也必须使用相对于的参数个数来接受返回值,如果不需要的返回值,我们可以使用匿名变量来接受保存。