函数

作者: __apple | 来源:发表于2018-05-26 11:16 被阅读0次

今天我们就来说说Go语言中函数的定义方式,几乎所有的语言都有函数,所以我在这里认为大家有一种编程语言的经验了,什么形参什么虚参什么是返回值,这些概念就不给大家一一介绍了,如果不懂的同学可以私下找我, 我给你但讲。。。在这里给大家补充一个,方法与函数的区别,因为在java中基本都是叫方法,Pyhton基本有函数与方法这两个称呼,Go中没有对象的概念所以他只有函数这个叫法,那么这两种说法分别代表什么意思?其实它俩是一样的,如果你非要纠结说一下不同那么

  • 方法:设计层面
  • 函数:程序运行、过程式的称谓

ok,关于函数的前奏就讲那么多,我们直接上一段Go的函数

func test(a ,b int, op string) int

函数的定义是乎与变量的定义是一样的,都是类型在后,名称在前
上面的test函数有点简单了,我们来点复杂点的

func eval(a, b int, op string) (int, error) {
    switch op {
    case "+":
        return a + b, nil
    case "-":
        return a - b, nil
    case "*":
        return a * b, nil
    case "/":
        q, _ := div(a, b)
        return q, nil
    default:
        return 0, fmt.Errorf(
            "unsupported operation: %s", op)
    }
}

这里需要注意的是eval函数接受两个参数, 一个是int, 一个是error 关于这个error呢我们前几节讲过了,这是Go的一种特殊的用法
我们再来一个数学计算

func div(a, b int) (q, r int) {
    return a / b, a % b
}

div函数就是一个整除与求余的函数,这个函数的返回值,可以公用一个int,是不是还不错呢!!!
从这几个函数中,我们基本就能得到一些Go函数的共有特征

  • 函数返回值可以起多个名字
  • 但是这种仅限于非常简单的函数
  • 对于调用者而言没有任何区别

其实函数还可以作为参数,可以作为返回值。
举个例子给同学们看一下

func apply(op func(int, int) int, a, b int) int {
    return op(a, b)
}

apply 函数有三个参数一个int返回值,里面的op 类型是一个匿名函数它有两个参数一个int返回值。
Go里面的参数没有可变参数、操作符重载、函数重载这些概念,但是我们可以通过一些特殊的方式,实现这些功能,比如今天我们讲可变参数在Go中怎么操作。
我们来计算1加到100

func sum(numbers ...int) int {
    s := 0
    for i := range numbers {
        s += numbers[i]
    }
    return s
}

在sum函数中我们就用可变参数列表,实现了其他语言中一部分可变参数的功能,怎么样你学会了嘛。如果同学们碰到了哪里不懂的,可以在我们的群里面追问,谢谢大家!!!!!

相关文章

  • Excel(三)

    AND函数 OR函数 NOT函数 IF函数 频率分析函数FREQUENCY

  • if、else if、for、while、repeat函数

    ①if函数 ②else if函数 ③for函数 ④while函数 ⑤repeat函数

  • strsplit、mapply、paste、match函数

    strsplit函数 mapply函数 strsplit函数 mapply函数 paste函数 match函数 第...

  • Oracle中常用函数(SQL)

    Oracle函授有以下几个分类:数字函数、字符函数、日期函数、转换函数、集合函数、分析函数 数字函数: 字符函数:...

  • MySQL函数

    字符函数 数字运算函数 比较运算符和函数 日期时间函数 信息函数 聚合函数 加密函数 流程函数

  • BI-SQL丨AND & OR & IN

    AND函数 & OR函数 & IN函数 AND函数、OR函数和IN函数都可以理解是WHERE函数的补充,当然也可以...

  • Python之函数

    课程大纲 函数定义 函数的参数 函数的返回值 高阶函数 函数作用域 递归函数 匿名函数 内置函数 函数式编程 将函...

  • 函数基本知识

    函数 函数的定义: def 函数名() 函数的调用:函数名() #不能将函数调用放在函数定义上方 函数的文档注...

  • 积分表——不定期更新

    基本初等函数包括: 常函数: 幂函数 指数函数 对数函数 三角函数 反三角函数 I、反函数Ⅱ、复合函数:初等函数(...

  • MySQL基本使用

    函数 常用函数 数学函数 字符串函数 日期函数

网友评论

      本文标题:函数

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