前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >厚土Go学习笔记 | 05. 函数

厚土Go学习笔记 | 05. 函数

作者头像
李海彬
发布2018-03-28 11:15:57
5190
发布2018-03-28 11:15:57
举报
文章被收录于专栏:Golang语言社区Golang语言社区

函数可以没有参数,也可以有多个参数。

代码语言:javascript
复制
package main

import(
    "fmt"
)

//有两个参数的函数
func add(x,y int) int  {
    return x + y
}

//没有参数的函数
func isay() string{
    return "I say the number is"
}

//主函数
func main(){
    fmt.Println(isay(), add(2, 5))
}

是不是奇怪add函数的参数的写法?

你没看错,Go语言可以这样写。如果多个参数都是同一个数据类型的话,前面的参数可以略写数据类型,只要最后一个写类型就可以了。

(x int, y int)等同于(x,y int)

【注意】Go语言里,数据类型都写在变量名之后。

Go语言里,函数还可以有任意数量的返回值,这给程序设计提供了很大的便利。

代码语言:javascript
复制
package main

import(
    "fmt"
)

//有两个参数的函数
func add(x,y int) int  {
    return x + y
}

//没有参数的函数
func isay() string{
    return "I say the number is"
}

//多个返回值的函数
func swap(x,y string) (string, string, string)  {
    return y, x, "!!!"
}

func main(){
    fmt.Println(isay(), add(2, 5))
    fmt.Println(swap("world", "Hello"))
}

新增加的swap函数返回了三个字符串,不但交换了参数的顺序,还给出了一个"!!!"的返回值。

函数还可以“命名返回值”,这样的写法,在return后可以不写任何代码。函数体如下:

代码语言:javascript
复制
func split(sum int) (x,y int)  {
    x = sum * 4 / 9
    y = sum - x
    return
}

这样没有参数的return,返回各个返回变量的当前值。这种用法被称为“裸”返回。

【注意】这样的用法最好只在较短的函数体使用。长的函数会影响代码的可读性。返回值的名称,应当具有一定的意义,可增加代码的可读性。

完整代码

代码语言:javascript
复制
package main

import(
    "fmt"
)

//有两个参数的函数
func add(x,y int) int  {
    return x + y
}

//没有参数的函数
func isay() string{
    return "I say the number is"
}

//多个返回值的函数
func swap(x,y string) (string, string, string)  {
    return y, x, "!!!"
}

//命名返回值
func split(sum int) (x,y int)  {
    x = sum * 4 / 9
    y = sum - x
    return
}

func main(){
    fmt.Println(isay(), add(2, 5))
    fmt.Println(swap("world", "Hello"))
    fmt.Println(split(197))
}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-11-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Golang语言社区 微信公众号,前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档