三、Go的函数

作者: 屉屉 | 来源:发表于2018-11-11 01:47 被阅读1次

三、Go的函数

Go语言最少有一个main()函数。

1、Go的函数定义:

func function_name( [parameter list] ) [return_types] {
   //函数体
}

2、函数参数

函数如果使用参数,该变量可称为函数的形参。

形参就像定义在函数体内的局部变量。

调用函数的两种传参方式
  • 值传递

    值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。

    
    func swap(x, y int) int {
       var temp int
    
       temp = x /* 保存 x 的值 */
       x = y    /* 将 y 值赋给 x */
       y = temp /* 将 temp 值赋给 y*/
    
       return temp;
    }
    
    swap(a, b)
    
  • 引用传递

    引用传递是指在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。

    func swap(x *int, y *int) {
       var temp int
       temp = *x    /* 保持 x 地址上的值 */
       *x = *y      /* 将 y 值赋给 x */
       *y = temp    /* 将 temp 值赋给 y */
    }
    
    /* 调用 swap() 函数
    * &a 指向 a 指针,a 变量的地址
    * &b 指向 b 指针,b 变量的地址
    */
    swap(&a, &b)
    

3、函数的用法

  • 函数作为值。

    return math.Sqrt(x)

  • 函数闭包

    Go 语言支持匿名函数,可作为闭包。匿名函数是一个"内联"语句或表达式。匿名函数的优越性在于可以直接使用函数内的变量,不必申明。

    func getSequence() func() int {
       i:=0
       return func() int {
          i+=1
         return i  
       }
    }
    

    在函数 getSequence() 返回另一个函数。

  • 函数方法

    Go 语言中同时有函数和方法。一个方法就是一个包含了接受者的函数,接受者可以是命名类型或者结构体类型的一个值或者是一个指针。所有给定类型的方法属于该类型的方法集。

    type Circle struct {
      radius float64
    }
    
    //该 method 属于 Circle 类型对象中的方法
    func (c Circle) getArea() float64 {
      //c.radius 即为 Circle 类型对象中的属性
      return 3.14 * c.radius * c.radius
    }
    

相关文章

  • 三、Go的函数

    三、Go的函数 Go语言最少有一个main()函数。 1、Go的函数定义: 2、函数参数 函数如果使用参数,该变量...

  • Golang学习笔记-函数

    Go函数定义格式如下: 例如: Go可以很灵活的创建函数,并作为另外一个函数的实参: Go支持匿名函数,可作为闭包...

  • 第02天(函数、工程管理)_03

    11_函数类型.go 12_回调函数.go 13_匿名函数和闭包.go 14_闭包捕获外部变量的特点.go 15_...

  • go单元测试和基准测试

    在*_test.go文件中,有三种类型的函数:测试函数、基准测试(benchmark)函数、示例函数。一个测试函数...

  • 第03天(复合类型)_03

    13_数组做函数参数.go 14_数组指针做函数参数.go 15_切片的长度和容量.go 16_切片的创建.go ...

  • Golang测试

    在*_test.go文件中,有三种类型的函数:测试函数、基准测试函数、示例函数。 测试函数是以Test*为函数名前...

  • go语言之goroutine

    goroutine 当go 语句执行的时候,其中的go函数会被单独放到一个goroutine中,在这之后该go函数...

  • golang系列教程

    Go包管理 Go开发工具 Go Doc 文档 Go 数组 Go 切片 Go Map Go 类型 Go 函数方法 G...

  • 09-Go语言函数

    函数 Go语言函数格式func 函数名称(形参列表)(返回值列表){函数语句} Go语言函数的类型没有返回值没有形...

  • Golang的语法糖

    Golang的语法糖 ... Go语言函数中有三个点 ... 表示为可变参数,这是Go的糖衣语法,表示可以接受任...

网友评论

    本文标题:三、Go的函数

    本文链接:https://www.haomeiwen.com/subject/jbztfqtx.html