go语言基础之函数

一、函数

1、定义格式

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

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

func FuncName(/*参数列表*/) (o1 type1, o2 type2/*返回类型*/) {
    //函数体
 
    return v1, v2 //返回多个值
}
 

函数定义说明:

l func:函数由关键字 func 开始声明

l FuncName:函数名称,根据约定,函数名首字母小写即为private,大写即为public

l 参数列表:函数可以有0个或多个参数,参数格式为:变量名 类型,如果有多个参数通过逗号分隔,不支持默认参数

l 返回类型:

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

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

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

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

二、无参无返回值函数

示例:

package main //必须有一个main包

import "fmt"

func main() {
        MyFunc()
}

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

#执行结果:

a =  666

  

三、普通参数列表

示例1: 传一个参数

package main //必须有一个main包

import "fmt"

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

func main() {
        MyFunc01(666)
}

#执行结果:

a =  666

  

示例2 :传多个传数

package main //必须有一个main包

import "fmt"

func MyFunc02(a int, b int) {

        fmt.Printf("a = %d, b = %d\n", a, b)
}

func main() {
        MyFunc02(666, 777)
}

#执行结果:

a = 666, b = 777

  

示例3: (同上,另一种写法)

package main //必须有一个main包

import "fmt"

func MyFunc03(a, b int) {

        fmt.Printf("a = %d, b = %d\n", a, b)
}

func main() {
        MyFunc03(666, 777)
}

#执行结果:

a = 666, b = 777

  

示例4: 其它写法

1、第5种
func MyFunc04(a int, b string, c float64) { }
2、第6种 func MyFunc05(a, b string, c float64, d, e int) { }
3、第7种
func MyFunc06(a string, b string, c float64, d int, e int) { }