05. 函数

作者: 厚土火焱 | 来源:发表于2017-08-08 14:56 被阅读142次

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

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))
}

相关文章

  • 05. 函数

    函数可以没有参数,也可以有多个参数。 是不是奇怪add函数的参数的写法?你没看错,Go语言可以这样写。如果多个参数...

  • Day8 函数2

    Day8 01.函数的返回值 02.作用域 03.匿名函数 04.函数作为变量 05.递归函数 01.函数的返回值...

  • Day6 js基础2

    01.js引入方式和打印方式 02.函数 03.数组 04.对象 05.常用对象和函数 06.js简单演示 07....

  • 面试题05. 替换空格

    ####### 面试题05. 替换空格 题目描述 请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 示...

  • Day7 jss应用

    01.添加事件 02.onload函数 03.选项卡 04.定时器 05.获取非行内样式 06.BOM操作 07....

  • R语言可视化(五):密度分布图绘制

    05.密度分布图绘制 清除当前环境中的变量 设置工作目录 基础plot函数绘制密度分布图 ggplot2包绘制密度...

  • 你可以相信我一回吗

    -2019​.05.​05-

  • Day5 js基础

    01.js基础语法 02.变量的声明 03.运算符 04.分之结构 05.循环结构 06.函数 07.数据类型 0...

  • 徐志摩:好久不见!

    01. 03. 05.

  • Update: CANBus Example

    05. October 2016 Release date: 05.10.2016The new version ...

网友评论

    本文标题:05. 函数

    本文链接:https://www.haomeiwen.com/subject/erutrxtx.html