美文网首页
Go语言的函数

Go语言的函数

作者: 霧雨之森 | 来源:发表于2019-03-20 10:32 被阅读0次

函数声明

声明一个函数的格式如下:

func function_name ([parameter]) [return_type] {
}

其中,参数为可选值;当且仅当函数没有返回值时,不标明返回值类型。
函数可以作为一个变量来声明,即可以使用 var 关键字或赋值操作符 ":=" 来定义函数变量。方法如下:

var function_name func([parameter]) return_type
function_name := func ([parameter]) [return_type] {
}

函数的参数

在默认的情况下,参数为值传递,即形式参数,修改形参不对实参造成影响。与C语言类似,可以利用指针的形式传递参数,使其变为引用传递。

函数的返回值

函数可以拥有多个返回值,并在return处按序返回。

函数方法

当函数的参数为结构体/命名类型时,可以将该函数视作结构体对象的方法,可以调用结构体对象的属性。

函数闭包

Go语言通过匿名函数来实现函数闭包。闭包函数即某代码块定义于另一代码块的内部。具体理解可以参见Javascript 函数闭包。在Go语言中,闭包函数可以使用定义所在的代码块中所声明的外部变量而无需关注可访问性。当外部函数创建后,形成闭包;外部函数的返回值,即身为匿名函数的闭包函数。当调用外部函数时,实质上是获取外部函数的返回值,即内部匿名函数。示例如下:

package main

import "fmt"

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

func main(){
   /* nextNumber 为一个函数,函数 i 为 0 */
   nextNumber := getSequence()  

   /* 调用 nextNumber 函数,i 变量自增 1 并返回 */
   fmt.Println(nextNumber()) /*1*/
   fmt.Println(nextNumber()) /*2*/
   fmt.Println(nextNumber()) /*3*/
   
   /* 创建新的函数 nextNumber1,并查看结果 */
   nextNumber1 := getSequence()  
   fmt.Println(nextNumber1()) /*1*/
   fmt.Println(nextNumber1()) /*2*/
}

range关键字

Go 语言中 range 关键字用于 for 循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素。在数组和切片中它返回元素的索引和索引对应的值,在集合中返回 key-value 对的 key 值。

相关文章

  • (四)go语言函数&参数传递

    go语言函数 基本语法 例子 go语言参数传递

  • 三、Go的函数

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

  • 09-Go语言函数

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

  • Golang的Init函数和Main函数

    Init函数和main函数 go语言中的init函数用于包package初始化。该函数时go语言的一个重要特性in...

  • Go语言中的函数 为什么是一等公民

    关键点 Go语言中,支持: 普通函数 匿名函数 闭包 在Go语言中,函数属于一等公民(first-class)? ...

  • cgo

    cgo cgo是用来在Go语言中调用C语言的工具 Go语言调用C语言 简单C语言函数 在Go语言中需要通过impo...

  • 04-枚举常量

    Go语言枚举 c语言中的枚举 Go语言枚举 iota迭代器 Go语言输出函数 fmt.Printf("格式化字符串...

  • 10-Go语言函数-指趣学院

    函数 Go语言和C语言一样也有函数的概念, Go语言中函数除了定义格式和不用声明以外,其它方面几乎和C语言一模一样...

  • 11.***函数***

    Go语言基础之函数 Golang 函数是组织好的、可重复使用的、用于执行指定任务的代码块。本文介绍了Go语言中函数...

  • go 语言基础--函数

    1、函数 和C语言类型,Go语言也有函数的概念,语法如下: 2 参数和返回值 2.1 返回值 go 语言可以返回零...

网友评论

      本文标题:Go语言的函数

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