博客
关于我
go语言学习--day3(函数)
阅读量:593 次
发布时间:2019-03-12

本文共 1356 字,大约阅读时间需要 4 分钟。

这是一个关于Golang函数特性的实例解析,涵盖了函数定义、调用方式以及相关语法细节。通过以下内容你可以全面了解如何在Golang中编写和使用函数。

1. 函数定义与语法

Golang的函数定义具有严格的语法结构。函数定义通常包括函数名、参数列表和返回值列表。语法格式如下:

func FunctionName(parameters) {    // 函数体}

2. 递归函数

递归函数是一种常见的编程模式,适用于可以分解成重复子问题的场景。以下是一个递归函数的示例:

func Recurrent(a int) int {    if a < 100 {        return Recurrent(a)    }    return a * 2}

调用递归函数的方式与普通函数类似。例如:

num := 1numbers := Recurrent(num)fmt.Println(numbers)

3. 多返回值函数

Golang支持函数返回多个值。以下是一个多返回值函数的示例:

func FunTest() (int, string, bool) {    return 1, "多返回值", false}

调用多返回值函数时,可以使用赋值操作符:

a, b, c := FunTest()fmt.Println(a)  // 输出: 1fmt.Println(b)  // 输出: "多返回值"fmt.Println(c)  // 输出: false

4. 可变参数函数

可变参数函数允许 σας传递任意数量的参数。以下是一个可变参数函数的示例:

func sum(nums ... int) int {    total := 0    for _, val := range nums {        total += val    }    return total}

调用可变参数函数时,可以传递任意数量的参数:

fmt.Println(sum(1, 2, 3))  // 输出: 6fmt.Println(sum(1, 2, 3, 4))  // 输出: 10

5. defer 语法

defer 语法用于推迟函数的执行。通常用于 cleanup 操作或释放资源。例如:

fmt.Println("A") defer fmt.Println("B") fmt.Println("C")

执行上述代码会输出以下结果:

ABC

6. 返回值的两步过程

函数返回值的赋值和真正返回是分开的两个步骤。defer 语法可以在这两个步骤之间执行。例如:

s := ""defer func() {    s = "完成赋值"}()return s

在上述代码中,函数返回值的赋值和真正返回之间会执行 defer 中的代码。因此,最终 s 将被赋值为 "完成赋值"。

7. 调用函数作为类型

你可以将函数作为类型进行赋值和比较。例如:

fun_type := Recurrentfmt.Println(fun_type(2))  // 输出: 4

总结

通过以上示例,你可以快速掌握Golang的函数特性。从递归和多返回值到可变参数和 defer,这些功能使Golang成为一员强大且灵活的编程语言。

转载地址:http://ujcxz.baihongyu.com/

你可能感兴趣的文章
CSS 选择器
查看>>
CSS 标准文档流
查看>>
PHPExcel 导入数据导多个工作区(sheet)
查看>>
六大原则
查看>>
二叉树,红黑树,B Tree,B+Tree详解
查看>>
Redis高并发分布式锁详解
查看>>
IDEA Git push remote origin already exists 错误解决办法
查看>>
Linux自有服务
查看>>
BUU-WEB-[CISCN 2019 初赛]Love Math
查看>>
python3之list去重
查看>>
HDU A + B Problem II
查看>>
HDU6514 Monitor(二维差分+二维前缀和)
查看>>
mask遮罩
查看>>
hibernate.hbm2ddl.auto配置详解
查看>>
mybatis(xml方式)多数据源异常: Invalid bound statement (not found)
查看>>
LiteOS学习(一)任务
查看>>