zoukankan      html  css  js  c++  java
  • Go语言基础之函数定义

    Go语言基础之函数定义

    函数是组织好的、可重复使用的、用于执行指定任务的代码块。本文介绍了Go语言中函数的相关内容。

    Go语言中支持函数、匿名函数和闭包,并且函数在Go语言中属于“一等公民”。

    一、函数定义

    Go语言中定义函数使用func关键字,具体格式如下:

    func 函数名(参数)(返回值){
        函数体
    }
    

    其中:

    • 函数名:由字母、数字、下划线组成。但函数名的第一个字母不能是数字。在同一个包内,函数名也称不能重名(包的概念详见后文)。
    • 参数:参数由参数变量和参数变量的类型组成,多个参数之间使用,分隔。
    • 返回值:返回值由返回值变量和其变量类型组成,也可以只写返回值的类型,多个返回值必须用()包裹,并用,分隔。
    • 函数体:实现指定功能的代码块。

    我们先来定义一个求两个数之和的函数:

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

    相同的参数类型和多个返回值变量类型相同省略写一个

    函数的参数和返回值都是可选的,例如我们可以实现一个既不需要参数也没有返回值的函数:

    func sayHello() {
        fmt.Println("Hello word")
    }
    

    二、函数定义方式

    空函数

    func empty(){
    
    }
    

    无参函数

    func sayHello() {
        fmt.Println("Hello word")
    }
    

    有参函数

    func getName(name string) {
        fmt.Println("name:", name)
    }
    
    

    返回值

    func calc(x, y int) (int, int) {
        sum := x + y
        sub := x - y
        return sum, sub
    }
    

    匿名函数

    func(参数)(返回值){
        函数体
    }
    

    三、函数的调用

    定义了函数之后,我们可以通过函数名()的方式调用函数。 例如我们调用上面定义的两个函数,代码如下:

    函数直接调用

    func main() {
        sayHello()
        ret := calc(10, 20)
        fmt.Println(ret)
        // 函数调用
        
    }
    

    注意,调用有返回值的函数时,可以不接收其返回值。

    函数当作参数调用

    func main() {
        ret := calc(calc(10, 20),calc(30, 40))
        fmt.Println(ret)
    }
    

    函数返回值参与运算

    func main() {
        ret := calc(30, 40) * 100 
        fmt.Println(ret)
    }
    

    四、总结

    1. 函数定义:func 函数名(参数)(返回值){ 函数体 }
    2. 函数可以分为:空函数,无参函数,有参函数,返回值函数,匿名函数
    3. 函数调用:函数名+()
    4. 函数实现具体的封装功能,使用函数的好处,解决程序冗余,实现可读,可扩展,减少重复造轮子,函数是一种思想而不是一种技术
    在当下的阶段,必将由程序员来主导,甚至比以往更甚。
  • 相关阅读:
    hdu 1348【凸包模板】
    hdu 3007【最小圆覆盖-随机增量法模板】
    poj 2187【旋转卡壳模板】
    bzoj 2618【半平面交模板】
    hdu1115【多边形求重心模板】
    bzoj 1006: [HNOI2008]神奇的国度【弦图+LesBFS】
    bzoj 3456: 城市规划【NTT+多项式求逆】
    bzoj 2194: 快速傅立叶之二【NTT】
    bzoj 4555: [Tjoi2016&Heoi2016]求和【NTT】
    bzoj 4842: [Neerc2016]Delight for a Cat【最小费用最大流】
  • 原文地址:https://www.cnblogs.com/randysun/p/15414267.html
Copyright © 2011-2022 走看看