Go语言之旅:函数

幸运草
幸运草
幸运草
878
文章
3
评论
2020年4月15日21:00:03 评论 143
与其他语言类似,Go语言函数也是由函数名、参数、返回值以及函数体等部分组成。

其中,参数与返回值一起构成了函数签名(signature)。

Go 语言中,函数可以接受零或多个参数:

package main

import "fmt"

func add(x int, y int) int {
    return x + y
}

func main() {
    fmt.Println(add(43, 13))
}

在这个例子中, add 函数接受两个整型( int )参数。 注意到,类型申明紧跟在参数名之后,与其他语言有些区别。

如果参数类型相同,则在最后一个申明即可,前面的可以省略。

因此,可以将 x int, y int 简写成 x, y int 。

返回多个值

Go 函数可以非常优雅地返回多个值,比起定义结构体返回指针之类的舒服多啦! 写个简单的程序交换两个字符串:

package main

import "fmt"

func swap(x, y string) (string, string) {
    return y, x
}

func main() {
    a, b := swap("hello", "world")
    fmt.Println(a, b)
}

命名返回值

Go 函数返回值可以被命名( named ),命名后当做函数参数来对待。 命名的意义在于指明各个返回值含义。

package main

 import "fmt"

 func split(sum int) (x, y int) {
     x = sum * 4 / 9
     y = sum - x
     return
 }

 func main() {
     fmt.Println(split(17))
 }

一个不带任何参数的 return 语句返回所有命名返回值, 这就是所谓的 裸返回 ( nakedreturn )。 裸返回只推荐在 短函数 中使用,如在 长函数 中滥用,则影响 代码可读性 。

特别声明:以上文章内容仅代表作者本人观点,不代表变化吧观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与变化吧联系。

幸运草
Go语言接口规则 前端框架

Go语言接口规则

Go语言接口规则 接口是一个或多个方法签名的集合。任何类型的方法集中只要拥有该接口对应的全部方法签名。就表示它 "实现" 了该接口,无须在该类型上显式声明实现了哪个接口。对应方法,是指有相同名称、参数...
Go语言中处理 HTTP 服务器 前端框架

Go语言中处理 HTTP 服务器

1 概述 包 net/http 提供了HTTP服务器端和客户端的实现。本文说明关于服务器端的部分。 快速开始: package main import (   "log"   "net/http" )...