函数

很重要go语言中用的最多的就是函数

定义一个标准函数

func 函数名(函数传参变量)(函数返回值变量) {
  函数体
  return 返回值
}

定义一个求和的函数

package main

import "fmt"

//定义一个求值的函数
func sum(x int, y int) (z int) {
  return x + y
}

func main() {
  //引入函数并计算
  sum1 := sum(6, 4)
  fmt.Println(sum1)
  //查看sum1的类型
  fmt.Printf("函数类型%T", sum1) //结果为int类型和上面定义sum函数的返回值是一个类型
}

函数存在的意义

  1. 函数是一段代码的封装
  2. 把一块逻辑抽象出来封装到一个函数中去,给它起个名字,每次用到它的时候直接用函数名调用就可以了
  3. 使用函数能够让代码结构更清晰更简洁

定义一个没有返回值的函数

func s1(x int, y int) {
  fmt.Println(x + y)
}

定义一个没有参数的函数

func f1() {
  fmt.Println(f1)
}

定义一个没有参数但是有返回值的函数

func f2()int {
  return 333
}

注意在go中定义的函数变量名是相当于声明了一个变量,go返回值可以命名也可以不命名。命名后的参数在return可以不用写参数名

func f3(x int,y int)(z int){
  z = x +y
  return //这里就可以省略z返回值的名称
}

多个返回值

func f4()(int ,string){
   return 1,"天津"
}

参数类型的简写

func f5(x,y int)int {
  return x+y
}

可变参数

//注意可变参数必须写到函数参数的最后
func f6(x string,y ...int){
  fmt.Println(x)
  fmt.Println(y) //这里的y是slice切片,具体类型根据你定义的参数类型一致,可以向y里传入多个数值
}

go语言函数没有默认参数概念,参数要么传参要么不传参,就是要么用函数要么就不用函数

匿名函数

没有名字的函数

func(x, y int) {
  fmt.Println(x + y)
}

使用函数

创造一个变量接受函数即可

var f1 = func(x, y int) {
  fmt.Println(x + y)
}


func main() {
  f1(10,20)
}

匿名函数的使用

匿名函数一般出现在函数的内部

func main(){
  f1 func(x, y int) {
  fmt.Println(x + y)
  }
  f1(10,20)
}

如果只是调用一次的函数还可以简写成立即执行函数

func main() {
  func() {
    fmt.Println("helloworld")
  }()
}

也可以传参

func main() {
  func(x,y int) {
    fmt.Println(x +y)
    fmt.Println("hello world")
  }(100,200)
}
posted @ 2023-02-08 20:50  suknna  阅读(97)  评论(0)    收藏  举报