前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go编程基础-基础篇 7

Go编程基础-基础篇 7

原创
作者头像
未来最可爱的人
修改2021-03-01 14:35:31
1660
修改2021-03-01 14:35:31
举报
文章被收录于专栏:编程基础编程基础

函数的定义和使用

函数的声明和定义是一起的,不存在先声明在定义,且声明时不分前后均可互相调用。

代码语言:javascript
复制
package main

import "fmt"

func print(s string) {
	fmt.Println(s)
}

func main() {
	print("Hello Codey !")
}
代码语言:javascript
复制
Hello Codey !

函数的返回值

可以一次返回多个返回值,Go 语言中如果是单返回值,可以直接在函数声明的括号后面增加数据类型。

代码语言:javascript
复制
func sum(a, b int) int //声明并定义一个返回值为int数据类型的函数
代码语言:javascript
复制
func sum(a, b int) (int, string) //声明并定义一个返回值为int和string数据类型的函数

使用 return+ 返回值返回

代码语言:javascript
复制
import "fmt"

func sumAndProduct(a, b int) (int, int) {
	c := a + b
	d := a * b
	return c, d
}

func main() {
	sum, product := sumAndProduct(1, 2)
	fmt.Println("a + b = ", sum)
	fmt.Println("a * b = ", product)
}
代码语言:javascript
复制
a + b =  3
a * b =  2

使用返回值变量返回

能直接在返回值处声明变量,这个变量的作用域是整个函数,并且会在 return 的时候直接返回。

代码语言:javascript
复制
package main

import "fmt"

func sumAndProduct(a, b int) (c int, d int) {
	c = a + b
	d = a * b
	return
}

func main() {
	sum, product := sumAndProduct(1, 2)
	fmt.Println("a + b = ", sum)
	fmt.Println("a * b = ", product)
}
代码语言:javascript
复制
a + b =  3
a * b =  2

defer 的逆序执行

defer 关键字就是 Go 语言中延迟语句的标志,defer 会在函数即将结束的时候执行,而且是按照 defer 的顺序逆序执行。

代码语言:javascript
复制
import "fmt"

func main() {
	defer fmt.Println("1")
	defer fmt.Println("2")
	defer fmt.Println("3")
	fmt.Println("Hello!")
}
代码语言:javascript
复制
Hello!
3
2
1

defer 中的变量

defer 关键字之后若有变量,则 defer 记录的是在 defer 时的变量值,而不是最后函数结束时的变量值。

代码语言:javascript
复制
package main

import "fmt"

func main() {
	a := 10
	defer fmt.Println("defer时a的值为", a)
	a = 100
	fmt.Println("print时a的值为", a)
}
代码语言:javascript
复制
print时a的值为 100
defer时a的值为 10

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 函数的定义和使用
  • 函数的返回值
  • 使用 return+ 返回值返回
  • 使用返回值变量返回
  • defer 的逆序执行
  • defer 中的变量
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档