package main
import "fmt"
// foo1 基本函数定义 func 函数名 (参数列表)(返回值列表,如果是1个参数时,可以去掉括号)
func foo1(a string, b int) int {
fmt.Println("a = ", a)
fmt.Println("b = ", b)
c := 100
return c
}
// foo2 返回多值的, 匿名的
func foo2(a string, b int) (int, int) {
fmt.Println("a = ", a)
fmt.Println("b = ", b)
return 666, 777
}
// 返回多个返回值,有形参名称的
func foo3(a string, b int) (r1 int, r2 int) {
fmt.Println("----- foo3 -----")
fmt.Println("a = ", a)
fmt.Println("b = ", b)
// r1, r2 属于foo3的形参,初始化默认值是0
// r1, r2 作用域空间 是foo3 整个函数的{}空间
fmt.Println("r1和r2没有被复制时的默认值是")
fmt.Println("r1 = ", r1)
fmt.Println("r2 = ", r2)
// 给有名称的返回值变量赋值
r1 = 1000
r2 = 2000
return
}
// 返回多值函数,返回列表数据类型一致
func foo4(a string, b int) (r1, r2 int) {
fmt.Println("----- foo4 -----")
fmt.Println("a = ", a)
fmt.Println("b = ", b)
// 给有名称的返回值变量赋值
r1 = 3000
r2 = 4000
return
}
// main
func main() {
// 返回单值
c := foo1("abc", 1)
fmt.Println("c = ", c)
//返回多值,匿名的
ret1, ret2 := foo2("foo2", 999)
fmt.Println("ret1 = ", ret1, ", ret2 = ", ret2)
//返回多值,有参数名
ret1, ret2 = foo3("foo3", 1000)
fmt.Println("ret1 = ", ret1, ", ret2 = ", ret2)
//返回多值,有参数名
ret1, ret2 = foo4("foo4", 3000)
fmt.Println("ret1 = ", ret1, ", ret2 = ", ret2)
}
// 执行结果
a = abc
b = 1
c = 100
a = foo2
b = 999
ret1 = 666 , ret2 = 777
----- foo3 -----
a = foo3
b = 1000
r1和r2没有被复制时的默认值是
r1 = 0
r2 = 0
ret1 = 1000 , ret2 = 2000
----- foo4 -----
a = foo4
b = 3000
ret1 = 3000 , ret2 = 4000
07.函数
转载
1.函数及多返回值
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
下一篇:06.常量和iota
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
SQL数据库入门07:自定义数据类型与用户定义函数(标量值、内嵌表值、多语句表值函数等)
本文介绍基于Microsoft SQL Server软件,实现数据库用户自定义数据类型的创建、使用与删除,以及标量值、内嵌表值、多语句表值函数等用户定义函数的创建、使用、删除方法~
SQL 数据库 SQL Server 自定义数据类型 用户定义函数 -
07.运动曲线
运动类型
自定义函数 html -
07. 图片插入
图片插入简单使用
前端 pdf 数据可视化 自动化测试 计算机技术 -
【JUC进阶】07. 自旋锁
从JDK6版本开始,HotSpot虚拟机开发团队就花费了大量的资源来实现各种的锁优化技术,前
java jvm 开发语言 自旋锁 自适应 -
Kotlin Jetpack 实战 | 07. Kotlin 委托
1. 前言 委托(Delegation),可能是 Kotlin 里最容易被低估的特性。 提到 Kotli
Android github java sql -
07. Docker网络通信模式
前面我们介绍了Docker容器的相关内我们今天要讲的内容。
docker 容器 云原生 运维 linux