• Golang函数-函数的基本概念


              Golang函数-函数的基本概念

                                 作者:尹正杰

    版权声明:原创作品,谢绝转载!否则将追究法律责任。

     

     

     

    一.函数的概述

    1>.函数定义语法格式

      Go语言函数定义格式如下:
        func 函数名( 函数参数列表 ) 返回值列表 {
            函数体
            return 返回值列表
        }

      关于函数定义的名词解释:
        函数名:
          顾名思义,就是定义函数的名字,方便用户多次调用,函数名其实你完全理解成一个标识符,因此函数名的命名规范也需要遵循标识符的命名规范,详情请参考我之前的笔记:https://www.cnblogs.com/yinzhengjie2020/p/12244384.html。
          
        形参列表:
          在定义函数时指定的形参,在未出现函数调用时,它们并不占内存的存储单元,因此称它们是形式参数或虚拟参数,简称形参,表示它们并不是实际存在的数据,所以,形参里的变量不能像python那样不能赋默认值。

        返回值列表:
          主要定义定义返回值的类型和个数。

        函数体:
          即定义调用该函数要执行的源代码。

        返回值:
          函数的返回值是通过函数中的return语句获得的,return后面的值也可以是一个表达式,只要返回值类型和定义的返回值列表所匹配即可。Go语言支持多个返回值。

    2>.实参和形参

      形参出现在函数定义中,在整个函数内部都可以使用,离开该函数则不能使用;
    
      实参出现在主调函数中,进入被调函数后,实参也不能使用;
      实参变量对形参变量的数据传递是"值传递",即单向传递,只由实参单向传递给形参,而形参不能传回来给实参;

      在调用函数时,编译系统临时会给形参分配存储单元。调用结束后,形参单元被释放;

      实参单元与形参单元是不同的单元。调用结束后,形参单元被释放,函数调用结束返回主调函数后则不能再使用该形参变量。实参单元仍保留并维持原值。因此,在执行一个被调用函数时,形参的值如果发生变化,并不会改变主调函数中实参的值。

      特此声明:上面关于形参的值描述指的是基础数据类型,而复合类型(有的语言称为)在后续的学习中你会发现有一定的差异,不用担心,在后面的笔记分享中你会慢慢体会到其中的奥妙~

    3>.函数的返回值

      保证return语句中表达式的值和函数返回类型是同一类型,如果函数返回的类型和return语句中表达式的值不一致,程序则会报错;
    
      return语句的另一个作用为中断return所在的执行函数;
    
      如果函数带返回值,return后面必须跟着值

    二.函数的基本使用

    1>.定义一个加法函数,接收2个int类型的函数返回2个int相加的结果

    package main
    
    import (
        "fmt"
    )
    
    func add(a int, b int) (sum int) {
        sum = a + b
        return sum
    }
    
    func main() {
    
        x := 100
        y := 200
    
        res := add(x, y)
    
        fmt.Printf("x + y = %d
    ", res)
    }

    2>.Go语言常用系统函数使用

      博主推荐阅读:
        https://www.cnblogs.com/yinzhengjie/p/12208030.html
        https://www.cnblogs.com/yinzhengjie/p/12203765.html
  • 相关阅读:
    敏捷开发流程的8个步骤
    PingCode Wiki ——国内最顶级的产研团队知识库产品介绍
    国内外最知名的9大工作任务管理软件盘点
    国内外最好用的18个协同办公系统盘点
    知识库的作用
    国内外好用的OKR管理工具有哪些?
    敏捷宣言及完整解读
    如何在敏捷中管理和减少技术负债?
    敏捷开发框架都有哪些
    PingCode与Jira 敏捷开发管理能力的对比
  • 原文地址:https://www.cnblogs.com/yinzhengjie2020/p/12297362.html
Copyright © 2020-2023  润新知