05. 函数

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

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语言里,函数还可以有任意数量的返回值,这给程序设计提供了很大的便利。

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后可以不写任何代码。函数体如下:

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

这样没有参数的return,返回各个返回变量的当前值。这种用法被称为“裸”返回。
【注意】这样的用法最好只在较短的函数体使用。长的函数会影响代码的可读性。返回值的名称,应当具有一定的意义,可增加代码的可读性。

完整代码

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))
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 5-1 如何定义和使用函数 定义和调用函数 当你定义了一个函数的时候,你可以选择定义一个或者多个命名的分类的值作为...
    75b9020bd6db阅读 1,287评论 0 0
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 7,947评论 2 9
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 9,448评论 1 10
  • 函数 函数是执行特定任务的自包含代码块。给定函数一个名称作为标识,并在需要的时候通过调用其名称来执行任务。 Swi...
    BoyceC阅读 3,247评论 0 1
  • 魏某,女,56岁,大专文化,退休教师,性格开朗。童年时与母亲及父亲的关系问题影响了其日后的人生,得了抑郁症,后来又...
    玲儿Elaine阅读 3,502评论 0 0