内容简介:一、计算示例运行代码,输出结果如下:解释:在GO语言中,函数的定义使用func关键字声明Add是一个函数,函数中需要两个传参,分别是x和y,并指定x和y都是int类型。大括号前的那个int是Add函数的返回值的类型,定义Add函数返回的值也必须是int类型。
一、计算示例
package main
import "fmt"
func main() {
a := 100
b := 2
fmt.Printf("%d + %d = %d\n", a, b, Add(a, b))
fmt.Printf("%d - %d = %d\n", a, b, Sub(a, b))
fmt.Printf("%d * %d = %d\n", a, b, Mul(a, b))
fmt.Printf("%d / %d = %d\n", a, b, Div(a, b))
}
func Add(x, y int) int {
return x + y
}
func Sub(x, y int) int {
return x - y
}
func Mul(x, y int) int {
return x * y
}
func Div(x, y int) int {
return x / y
}
运行代码,输出结果如下:
100 + 2 = 102 100 - 2 = 98 100 * 2 = 200 100 / 2 = 50
解释:在 GO 语言中,函数的定义使用func关键字声明Add是一个函数,函数中需要两个传参,分别是x和y,并指定x和y都是int类型。大括号前的那个int是Add函数的返回值的类型,定义Add函数返回的值也必须是int类型。
二、多返回值特性
GO语言是一个多返回值类型语言,如果是多个返回值的话,可以写成(int, int), return,必须返回数量相等的返回值,示例如下:
package main
import "fmt"
func vals() (int, int) {
return 3, 7
}
func main() {
a, b := vals()
fmt.Println(a)
fmt.Println(b)
_, c := vals() //使用空白的标识符_,可以选择不接收返回值
fmt.Println(c)
}
三、匿名函数和闭包
匿名函数:就是没有名称的函数
示例如下:
package main
import "fmt"
func intSeq() func() int {
i := 0
return func() int {
i++
return i
}
}
func main() {
nextInt := intSeq()
fmt.Println(nextInt())
fmt.Println(nextInt())
fmt.Println(nextInt())
}
执行结果如下:
解释:1)func intSeq() func() int {} //首先顶一个intSeq()的函数,这个函数比较特殊,它的返回值也是一个函数func(),func()这个函数呢是没有名称的函数,也就是 匿名函数 ,因为func()是在intSeq这个函数中的函数,所以func()又可以被称为 闭包 ,最终intSeq()是将func()函数作为返回值返回。
2)nextInt := intSeq() //把intSeq()函数赋值给nextInt这个变量
3)fmt.Println(nextInt()) //输出nextInt的值,nextInt就调用intSeq()
4)
i := 0
return func() int {
i++
return i //给i变量初始化一个值为0,因为nextInt调用intSeq(),而func()的返回值就是intSeq()的返回值,则变量i循环增加,每次增加1,就这样每循环一次,新的i的变量就得到新值,i就把值返回给func()这个匿名函数,然后func()这个匿名函数又把值返回给intSeq()这个函数,然后intSeq()函数又把值赋值给nextInt变量,最终输出出来。
以上所述就是小编给大家介绍的《GO语言学习笔记(五)GO语言函数的简易计算》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Beginning ASP.NET 4 in C# and Vb
Imar Spaanjaars / Wrox / 2010-3-19 / GBP 29.99
This book is for anyone who wants to learn how to build rich and interactive web sites that run on the Microsoft platform. With the knowledge you gain from this book, you create a great foundation to ......一起来看看 《Beginning ASP.NET 4 in C# and Vb》 这本书的介绍吧!