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 :=
y := res := add(x, y) fmt.Printf("x + y = %d\n", res)
}

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

  博主推荐阅读:
    https://www.cnblogs.com/yinzhengjie/p/12208030.html
    https://www.cnblogs.com/yinzhengjie/p/12203765.html

Golang函数-函数的基本概念的更多相关文章

  1. golang的函数

    在golang中, 函数是第一类值(first-class object), 即函数可以赋值与被赋值. 换言之, 函数也可以作为ReceiverType, 定义自己的method. 实例: http. ...

  2. 分位函数(四分位数)概念与pandas中的quantile函数

    p分位函数(四分位数)概念与pandas中的quantile函数 函数原型 DataFrame.quantile(q=0.5, axis=0, numeric_only=True, interpola ...

  3. python函数中闭包的概念说明

    函数中闭包的概念说明 闭包: 内层函数对外层函数非全局变量的引用,就叫做闭包 判断闭包方法 ._closure_ : 执行后返回有效信息就是闭包,返回none就不是闭包 举例1: 是闭包 def wr ...

  4. golang(06)函数介绍

    原文链接 http://www.limerence2017.com/2019/09/11/golang11/#more 函数简介 函数是编程语言中不可缺少的部分,在golang这门语言中函数是一等公民 ...

  5. Python第六章-函数01-函数的概念和使用

    函数 为了便于程序的维护和更好的实现模块化,好的程序都会分解为很多函数. 可以这么说,对于任何的编程语言,函数都是一个非常重要的概念. python 不仅简化了函数的定义过程,而且还大量借鉴了其他函数 ...

  6. golang:函数总结

    golang保留的函数 init(), main()是golang的保留函数,有如下特点: main() 只能用在main包中,仅可定义一个,init() 可定义任意包,可重复定义,建议只定义一个 两 ...

  7. JavaScript 引入方式 语言规范 语言基础 数据类型 常用方法 数组 if_else 比较运算符 for while 函数 函数的全局变量和局部变量 {Javascript学习}

    Javascript学习 JavaScript概述 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript ...

  8. Golang(二)基本概念

    类型 18个基本类型:bool.string.rune.byte.int.uint.int8.uint.int8.int16.uint16.int32.uint32.int64.uint64.floa ...

  9. python函数-函数初识

    python函数-函数初识 1.函数的定义 语法 def 函数名(参数1,参数2,参数3,...): '''注释''' 函数体 return 返回的值 2.函数的使用原则---先定义后调用 #定义阶段 ...

随机推荐

  1. Atcoder Beginner Contest 140E(多重集,思维)

    #define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;multiset<long long&g ...

  2. Educational Codeforces Round 72 (Rated for Div. 2)D(DFS,思维)

    #define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;int n,m,k=1;int c[5007] ...

  3. ffmpeg-01-Subtitle

    1. ffmpeg简介 2. 摘录文档 2.1 过滤 Filtering 2.1.1 简单滤镜 2.1.2 复杂的滤镜 2.1.3 简单过滤与复杂过滤 2.2 Stream 流复制 2.3 对比图 3 ...

  4. js中的||和&&的用法

    与其他语言不同,在JS中,a&&b或者a||b返回的是要么是a,要么是b:而其他语言中返回的是true or false 对于js中的或与运算,需要隐式的转换为boolean类型再来运 ...

  5. 单元测试报错:unable to find a @SpringBootConfiguration

    完整异常: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBoo ...

  6. SpringBoot nohup启动

    #!/bin/sh nohup java -jar /data/wwwroot/xxx.jar > /data/wwwlogs/xxx.log >&

  7. 通过开源项目免费申请 IntelliJ IDEA license(激活码)

    通过github开源项目免费申请 IntelliJ IDEA license(激活码) 我用来申请的github开源项目:https://github.com/Linliquan/springboot ...

  8. 在网页中JS函数自动执行常用三种方法

    在网页中JS函数自动执行常用三种方法 在HTML中的Head区域中,有如下函数: <SCRIPT   LANGUAGE="JavaScript">   function ...

  9. Github版本控制系统

    Git是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一). 特别推荐简单易懂的廖雪锋大神制作的学习教程: https://www.liaoxuefeng.com/wiki/896043 ...

  10. HDU5943 Kingdom of Obsession 题解

    题意 有 \(n\) 个数 \(s+1\ldots s+n\),求是否能将这 \(n\) 个数放到 \(1\ldots n\) 上,且当令原数为 \(x\),放到 \(y\) 位置时有 \(x \mo ...