四时宝库

程序员的知识宝库

Go语言基础—函数(1)(go语言函数式编程)

一、函数:

  • 函数:一段代码块
  • 所有的流程控制代码和业务代码都只能写在函数内部
  • 为什么使用函数

把一个功能提出组偶为一个函数便于后期维护,结构清晰

  • 函数声明语法

函数声明后不会执行,必须调用后才会执行

fun 函数名(参数列表) 返回值{
    //函数体
}
  • 函数调用的语法
返回值 := 函数名(参数)


二、无参数无返回值函数

  • 函数可以有参数,也可以没有参数,可以有返回值也可以没有返回值
func main() {
   demo01()
}

func demo01()  {
   fmt.Println("执行demo01函数")
}
//上面代码等同于
//func main() {
// fmt.Println("执行demo01函数")
//}


三、有参数函数

  • 函数的参数可以有多个,且每个参数类型都可以不同
  • 参数表示调用函数方想要给函数内部传递的值,给函数使用
  • 声明函数时的参数叫做形参,调用函数时参数叫做实参
func main() {
   i := 5
   s := "smallming"
   show(s,i)
}
func show(name string,age int)  {
   fmt.Println("姓名:",name,"年龄:",age)
}


四、有返回值函数

  • 函数的返回值是给调用方返回的数据,给调用方使用的
  • 具有返回值的函数,必须要有return


五、多返回值函数

1、定义

  • 在Go语言中每个函数声明时都可以定义成多返回值函数
  • Go语言中所有的错误都是通过返回值返回的
  • 声明多返回值函数的语法:
func 函数名(参数列表) (返回值,返回值) {
    //函数体
}
  • 调用函数的语法
变量,变量 := 函数名(参数)
  • 调用函数时如果不想接收,可以使用下划线占位
变量,_ := 函数名(参数)
  • 理论上函数返回值个数可以无限多个,但是一般不去定义多个返回值(用结构体代替多返回值)


2、代码演示

  • 函数的返回值可以不接收,表示执行函数
  • 函数的返回值如果接收,用于接收返回值的变量个数与返回值个数相同
  • 不想接收的使用占位符(_)占位,一个下划线代表一个返回值
func main() {
   //不接收函数返回值
   demo()

   //每个返回值都接收
   a, b := demo()
   fmt.Println(a, b) //输出:smallming 17

   //不希望接收的返回值使用下划线占位,一个下划线只能代表一个返回值
   c,_ := demo()
   fmt.Println(c) //输出:smallming
}
func demo() (string, int)  {
   return "smallming",17
}


  • 多返回值函数也可以给返回值定义变量,return后面就不需要编写内容
 func main() {
   a,b,c := demo()
   fmt.Println(a,b,c) //smallming 17 xiamen
}
func demo() (name string, age int, addr string)  {
   fmt.Println("执行了demo")
   name = "smallming"
   age = 17
   addr = "xiamen"
   return name,age,addr
}

等效于

func main() {
   a,b,c := demo()
   fmt.Println(a,b,c) //smallming 17 xiamen
}
func demo() (name string, age int, addr string)  {
   fmt.Println("执行了demo")
   name = "smallming"
   age = 17
   addr = "xiamen"
   return    //可省略具体返回值
}

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接