专栏首页Golang语言社区深入解析golang编程中函数的用法

深入解析golang编程中函数的用法

函数是一组一起执行任务的语句。每Go程序具有至少一个函数,它一般是main(),以及所有的最琐碎程序可以定义附加函数。

你可以将代码放到独立的功能。如何划分代码之间的不同功能,但逻辑上的划分通常是让每个函数执行特定的任务。

函数声明告诉编译器有关的函数的名称,返回类型和参数。一个函数定义提供了函数的实际主体。

Go语言标准库提供了大量的内置函数,在程序可以调用。例如,函数len()需要不同类型的参数和返回值的类型的长度。例如,如果一个字符串传递给它,它会返回字符串的长度以字节为单位,如果一个数组传递给它,它就会返回数组的长度为它所拥有元素的个数。

函数称为具有各种名字等的方法或子例程或程序等。

定义一个函数: 在Go编程语言的函数定义的一般形式如下:

func function_name( [parameter list] ) [return_types]
{
   body of the function
}

在Go编程语言中的函数定义由函数头和函数体。这里是一个函数的所有部分:

  • func 开始函数的声明。
  • Function Name: 这是该函数的实际名称。函数名和参数列表一起构成了函数签名。
  • Parameters: 参数是像一个占位符。当调用一个函数,你传递一个值的参数。这个值被称为实际参数或参数。参数列表指的类型,顺序和数量的函数的参数。参数是可选的;也就是说,一个函数可包含任何参数。
  • Return Type: 函数可能返回值的列表。return_types是该函数返回值的数据类型的列表。有些函数执行所需的操作没有返回值。在这种情况下,return_type不是必需的。

Function Body: 函数体包含了定义函数操作语句的集合。

例子: 下面是一个函数的源代码称为max()。这个函数有两个参数num1与num2并返回两者之间的最大值:

/* function returning the max between two numbers */
func max(num1, num2 int) int
{
   /* local variable declaration */
   result int
   if (num1 > num2) {
      result = num1
   } else {
      result = num2
   }
   return result 
}


调用一个函数:
创建一个Go编程的函数必须做一个定义。要使用函数,需要调用该函数来执行规定的任务。
当程序调用函数,程序控制被转移到所调用的函数。调用函数定义执行任务时,被执行的return语句或达到其功能结束的右括号,则返回程序控制返回到主程序。
要调用一个函数,只需要通过必要的参数以及函数的名称,如果函数返回一个值,那么可以存储返回值。例如:

复制代码代码如下:

package main
import "fmt"
func main() {
   /* local variable definition */
   var a int = 100
   var b int = 200
   var ret int
   /* calling a function to get max value */
   ret = max(a, b)
   fmt.Printf( "Max value is : %d\n", ret )
}
/* function returning the max between two numbers */
func max(num1, num2 int) int {
   /* local variable declaration */
   var result int
   if (num1 > num2) {
      result = num1
   } else {
      result = num2
   }
   return result 
}

保持max()函数与main()函数并编译源代码。在运行最后的可执行文件,它会产生如下结果:

?

Max value is : 200

从函数返回多个值 Go语言函数可以返回多个值。例如:

 package main
import "fmt"
func swap(x, y string) (string, string) {
   return y, x
}
func main() {
   a, b := swap("Mahesh", "Kumar")
   fmt.Println(a, b)
}

让我们编译和运行上面的程序,这将产生以下结果:

?

Kumar Mahesh

本文分享自微信公众号 - Golang语言社区(Golangweb)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-05-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Golang语言情怀-第7期 Go 语言函数

    函数是基本的代码块,用于执行一个任务。Go 语言最少有个 main() 函数。你可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务。函数声明告诉了编译...

    李海彬
  • Golang语言社区--【基础知识】函数

    函数是一组一起执行任务的语句。每Go程序具有至少一个函数,它一般是main(),以及所有的最琐碎程序可以定义附加函数。 你可以将代码放到独立的功能。如何划分代码...

    李海彬
  • Go 语言函数

    函数是基本的代码块,用于执行一个任务。 Go 语言最少有个 main() 函数。 你可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务。 函数声明告诉...

    李海彬
  • 深度学习中的激活函数一览

    激活函数概念 所谓激活函数(Activation Function),就是在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端。

    glm233
  • [一] java8 函数式编程入门 什么是函数式编程 函数接口概念 流和收集器基本概念

    说起来好像很啰嗦,但是如果有人告诉你 通过sin(x) 计算后, x的值被改变了,你不会觉得异常奇怪么

    noteless
  • C# —— GetProcAddress函数检索指定的动态链接库(DLL)中的输出库函数地址。

    GetProcAddress函数检索指定的动态链接库(DLL)中的输出库函数地址。 函数原型: FARPROC GetProcAddress( HMODU...

    vv彭
  • 测开之函数进阶· 第2篇《纯函数》

    一个函数的返回结果只依赖于它的参数,并且在执行过程里面没有副作用,我们就把这个函数叫做纯函数。

    清菡
  • 原 PostgreSQL的系统函数分析记录

    王果壳
  • 【玩转腾讯云】万物皆可Serverless之关于云函数冷热启动那些事儿

    然后我们再来看一下腾讯云云函数文档里的简介 https://cloud.tencent.com/document/product/583/9199

    乂乂又又
  • PHP数字函数

    白胡杨同学

扫码关注云+社区

领取腾讯云代金券