1 定义格式

函数构成代码执行的逻辑结构。在Go语言中,函数的基本组成为:关键字func、函数名、参数列表、返回值、函数体和返回语句。

Go 语言函数定义格式如下:

func FuncName(/*参数列表*/) (o1 type1, o2 type2/*返回类型*/) {
    //函数体

    return v1, v2 //返回多个值
}

函数定义说明:

  • func:函数由关键字 func 开始声明
  • FuncName:函数名称,根据约定,函数名首字母小写即为private,大写即为public
  • 参数列表:函数可以有0个或多个参数,参数格式为:变量名 类型,如果有多个参数通过逗号分隔,不支持默认参数
  • 返回类型:

    ① 上面返回值声明了两个变量名o1和o2(命名返回参数),这个不是必须,可以只有类型没有变量名

    ② 如果只有一个返回值且不声明返回值变量,那么你可以省略,包括返回值的括号

    ③ 如果没有返回值,那么就直接省略最后的返回信息

    ④ 如果有返回值, 那么必须在函数的内部添加return语句

2 自定义函数

2.1 无参无返回值

package main

import "fmt"

//无参无返回值函数定义

func MyFunc(){
    a :=
    fmt.Println("a = ", a)
}

func main(){
    // 无参无返回值函数的调用,函数名()
    MyFunc()
}

2.2 有参无返回值

2.2.1 普通参数列表

package main

import "fmt"

// 有参无返回值函数的定义, 普通参数列表
// 定义函数时,在函数后面()定义参数为形参
// 参数传递,只能由实参传递给形参,不能反过来,单向传递
func MyFunc1(a int){
    fmt.Println("a = ", a)
}

func MyFunc2(a int, b int){
    fmt.Printf("a = %d, b = %d\n", a, b)
}

func MyFunc3(a, b int){
    fmt.Printf("a = %d , b = %d \n", a, b)
}

func MyFunc4(a int, b string, c float64){

}

func MyFunc5(a, b string, c float64, d, e bool){

}

func main(){
    // 有参无返回值函数调用: 函数名(所需参数)
    // 调用函数传递的参数叫实参
    MyFunc1()
    MyFunc2(, )
}

2.2.1 普通参数列表

1) 不定参数类型

不定参数是指函数传入的参数个数为不定数量。为了做到这点,首先需要将函数定义为接受不定参数类型:

package main

import "fmt"

// ...int这样的类型, ...type 不定参数类型
// Python中使用*args,**kwargs
func MyFunc01(args ...int){  //传递的实参可以是0或者多个
    fmt.Println("len(args) = ", len(args))  //获取用户传递参数的个数
    ; i<len(args); i++{
        fmt.Printf("args[%d] = %d\n", i , args[i])
    }

    fmt.Println("=================================================")

    for i, data := range args{
        fmt.Printf("args[%d] = %d\n", i, data)
    }
}

//固定参数一定要传参,不定参数根据需求传递
func MyFunc03(a int, args ...int){

}

//注意,不定参数,一定(只能)放在形参中的最后一个参数
//func MyFunc04(args ...int, a int){
// }

func main(){
    MyFunc01(,,)
}

Go函数篇的更多相关文章

  1. PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明

    PHP函数篇详解十进制.二进制.八进制和十六进制转换函数说明 作者: 字体:[增加 减小] 类型:转载   中文字符编码研究系列第一期,PHP函数篇详解十进制.二进制.八进制和十六进制互相转换函数说明 ...

  2. Python函数篇(5)-装饰器及实例讲解

    1.装饰器的概念   装饰器本质上就是一个函数,主要是为其他的函数添加附加的功能,装饰器的原则有以下两个: 装饰器不能修改被修饰函数的源代码 装饰器不能修改被修改函数的调用方式   装饰器可以简单的理 ...

  3. Python函数篇(7)-正则表达式

    1.正则表达式   正则表达式为高级的文本模式匹配,抽取,与/或文本形式的搜索和替换功能提供了基础,简单的来说,正则表达式是由一些字符和特殊符号组成的字符串.Python通过标准库中的re模块来支持正 ...

  4. Scala进阶之路-Scala函数篇详解

    Scala进阶之路-Scala函数篇详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.传值调用和传名调用 /* @author :yinzhengjie Blog:http: ...

  5. C语言函数篇(二)函数参数基础设计

    形参实现一种数据传入的接口 ,由 实参 拷贝给 形参. 拷贝!!!!!!!!!!! 例1: void func(int tmp){ //意图是实现传进来的参数 +1 tmp++; } int mian ...

  6. 30s源码刨析系列之函数篇

    前言 由浅入深.逐个击破 30SecondsOfCode 中函数系列所有源码片段,带你领略源码之美. 本系列是对名库 30SecondsOfCode 的深入刨析. 本篇是其中的函数篇,可以在极短的时间 ...

  7. 《前端之路》- TypeScript(二) 函数篇

    目录 一.定义函数方法 二.定义函数传参 三.可选传参 四.默认传参 五.传递剩余参数 六.函数重载 七.箭头函数 八.总结 一.定义函数方法 在 es5 中定时函数的方法有 命名函数和函数表达式(匿 ...

  8. JavaScript进阶之高阶函数篇

    JavaScript进阶之高阶函数篇 简介:欢迎大家来到woo爷说前端:今天给你们带来的是JavaScript进阶的知识,接下来的系列都是围绕着JavaScript进阶进行阐述:首先我们第一篇讲的是高 ...

  9. 通过实战理解C语言精要——函数篇

      前言 本篇博客是对C语言函数部分的重点内容和细枝末节通过实战得到的经验的总结精炼,不涵盖C语言函数的全部内容,所有提炼内容均来自提炼与实战,阅读需要对函数部分有一定基础,可用于对C语言函数的理解提 ...

  10. Python函数篇(3)-内置函数、文件处理

    1.内置函数 上一篇文章中,我重点写了reduce.map.filter3个内置函数,在本篇章节中,会补充其他的一些常规内置函数,并重点写max,min函数,其他没有说明的函数,会在后面写到类和面向对 ...

随机推荐

  1. Mysql 数据库部署(解压免安装)

    下载压缩包,解压. 在根目录下添加my.ini, 复制一下内容,保存. [mysqld] skip-grant-tables #绑定IPv4和3306端口 bind-address = 0.0.0.0 ...

  2. windows10下Bad owner or permissions on .ssh/config的解决办法

    方法很简单,亲测有效. 1.进入如下路径C:\Users\用户名\.ssh,你会看到有config这个文件 2.右击config,属性→安全→高级→禁止继承→删除所有继承(忘了全称了,大概这个意思)→ ...

  3. 学习10:Python重要知识

    Python易忽略知识 (1)print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end="": (2)isinstance 和 type 的区别在于:type()不 ...

  4. Rust中的控制结构

    fn main() { let number = ; { println!("condition was true"); } else { println!("condi ...

  5. 201871010132--张潇潇--《面向对象程序设计(java)》第十五周学习总结

    博文正文开头格式:(2分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.co ...

  6. JDOJ 2254 Who am I?

    JDOJ 2254: Who am I? Description 输出程序自己本身的源代码. Input 无 Output 输出程序自己本身的源代码. 我真是搞不懂了出这道题还把它归到程序语法基础题里 ...

  7. Excel-查找函数

    1.VLOOKUP函数 该函数的语法规则如下: VLOOKUP(lookup_value,table_array,col_index_num,range_lookup) 多表关联查询---vlooku ...

  8. Shell编程——test命令

    1.整数 如果表达式为真返回值为0,如果表达式为假,返回值为1.test命令可以对整数.字符串.以及文件进行判断. -it:小于 -le:小于或等于 -gt:大于 -ge:大于或等于 -eq:等于 - ...

  9. read articles list

    done 如何通俗易懂地解释卷积: https://www.zhihu.com/question/22298352/answer/637156871 如何通俗易懂地理解卷积神经网路: http://w ...

  10. 使用PAC文件来管理代理连接

    生成PAC文件 谷歌浏览器插件商店安装SwitchyOmega,找到立即更新模式,然后导出PAC文件 使用PAC文件 pac采用js编写 Windows Windows上面使用PAC文件很简单,新建一 ...