广告
返回顶部
首页 > 资讯 > 精选 >go语言怎么调用函数
  • 794
分享到

go语言怎么调用函数

2023-07-04 17:07:46 794人浏览 八月长安
摘要

本文小编为大家详细介绍“Go语言怎么调用函数”,内容详细,步骤清晰,细节处理妥当,希望这篇“go语言怎么调用函数”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在go语言中,定义了函数之后,我们可以通过“函数名()

本文小编为大家详细介绍“Go语言怎么调用函数”,内容详细,步骤清晰,细节处理妥当,希望这篇“go语言怎么调用函数”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

在go语言中,定义了函数之后,我们可以通过“函数名()”的方式调用函数,语法“返回值变量列表 = 函数名(参数列表)”。当“()”中包含多个参数时,参数变量以逗号分隔,尾部无须以分号结尾;“返回值变量列表”中,多个返回值使用逗号分隔。

函数构成了代码执行的逻辑结构,在Go语言中,函数的基本组成为:关键字 func、函数名、参数列表、返回值、函数体和返回语句,每一个程序都包含很多的函数,函数是基本的代码块。

因为Go语言是编译型语言,所以函数编写的顺序是无关紧要的,鉴于可读性的需求,最好把 main() 函数写在文件的前面,其他函数按照一定逻辑顺序进行编写(例如函数被调用的顺序)。

编写多个函数的主要目的是将一个需要很多行代码的复杂问题分解为一系列简单的任务来解决,而且,同一个任务(函数)可以被多次调用,有助于代码重用(事实上,好的程序是非常注意 DRY 原则的,即不要重复你自己(Don't Repeat Yourself),意思是执行特定任务的代码只能在程序里面出现一次)。

当函数执行到代码块最后一行 } 之前或者 return 语句的时候会退出,其中 return 语句可以带有零个或多个参数,这些参数将作为返回值供调用者使用,简单的 return 语句也可以用来结束 for 的死循环,或者结束一个协程(goroutine)。

Go语言里面拥三种类型的函数:

  • 普通的带有名字的函数

  • 匿名函数或者 lambda 函数

  • 方法

普通函数声明(定义)

函数声明包括函数名、形式参数列表、返回值列表(可省略)以及函数体。

func 函数名(形式参数列表)(返回值列表){    函数体}

形式参数列表描述了函数的参数名以及参数类型,这些参数作为局部变量,其值由参数调用者提供,返回值列表描述了函数返回值的变量名以及类型,如果函数返回一个无名变量或者没有返回值,返回值列表的括号是可以省略的。

调用函数

函数在定义后,可以通过调用的方式,让当前代码跳转到被调用的函数中进行执行,调用前的函数局部变量都会被保存起来不会丢失,被调用的函数运行结束后,恢复到调用函数的下一行继续执行代码,之前的局部变量也能继续访问。

函数内的局部变量只能在函数体中使用,函数调用结束后,这些局部变量都会被释放并且失效。

Go语言的函数调用格式如下:

返回值变量列表 := 函数名(参数列表)

下面是对各个部分的说明:

  • 函数名:需要调用的函数名。

  • 参数列表:参数变量以逗号分隔,尾部无须以分号结尾。

  • 返回值变量列表:多个返回值使用逗号分隔。

例如,加法函数调用样式如下:

result := add(1,1)

函数的返回值

Go语言支持多返回值,多返回值能方便地获得函数执行后的多个返回参数,Go语言经常使用多返回值中的最后一个返回参数返回函数执行中可能发生的错误,示例代码如下:

复制纯文本复制
conn, err := connectToNetwork()

conn, err := connectToNetwork()

在这段代码中,connectToNetwork 返回两个参数,conn 表示连接对象,err 返回错误信息。

其它编程语言中函数的返回值
  • C/C++ 语言中只支持一个返回值,在需要返回多个数值时,则需要使用结构体返回结果,或者在参数中使用指针变量,然后在函数内部修改外部传入的变量值,实现返回计算结果,c++ 语言中为了安全性,建议在参数返回数据时使用“引用”替代指针。

  • C# 语言也没有多返回值特性,C# 语言后期加入的 ref 和 out 关键字能够通过函数的调用参数获得函数体中修改的数据。

  • lua 语言没有指针,但支持多返回值,在大块数据使用时方便很多。

Go语言既支持安全指针,也支持多返回值,因此在使用函数进行逻辑编写时更为方便。

1) 同一种类型返回值

如果返回值是同一种类型,则用括号将多个返回值类型括起来,用逗号分隔每个返回值的类型。

使用 return 语句返回时,值列表的顺序需要与函数声明的返回值类型一致,示例代码如下:

复制纯文本复制
func typedTwoValues() (int, int) {
   return 1, 2
}
func main() {
   a, b := typedTwoValues()
   fmt.Println(a, b)
}

func typedTwoValues() (int, int) {    return 1, 2}func main() {    a, b := typedTwoValues()    fmt.Println(a, b)}

代码输出结果:

1 2

纯类型的返回值对于代码可读性不是很友好,特别是在同类型的返回值出现时,无法区分每个返回参数的意义。

2) 带有变量名的返回值

Go语言支持对返回值进行命名,这样返回值就和参数一样拥有参数变量名和类型。

命名的返回值变量的默认值为类型的默认值,即数值为 0,字符串为空字符串,布尔为 false、指针为 nil 等。

下面代码中的函数拥有两个整型返回值,函数声明时将返回值命名为 a 和 b,因此可以在函数体中直接对函数返回值进行赋值,在命名的返回值方式的函数体中,在函数结束前需要显式地使用 return 语句进行返回,代码如下:

复制纯文本复制
func namedRetValues() (a, b int) {
   a = 1
   b = 2
   return
}

func namedRetValues() (a, b int) {    a = 1    b = 2    return}

代码说明如下:

  • 第 1 行,对两个整型返回值进行命名,分别为 a 和 b。

  • 第 3 行和第 4 行,命名返回值的变量与这个函数的布局变量的效果一致,可以对返回值进行赋值和值获取。

  • 第 6 行,当函数使用命名返回值时,可以在 return 中不填写返回值列表,如果填写也是可行的,下面代码的执行效果和上面代码的效果一样。

    复制纯文本复制
    func namedRetValues() (a, b int) {
       a = 1
       return a, 2
    }
    func namedRetValues() (a, b int) {
        a = 1

        return a, 2
    }
提示

同一种类型返回值和命名返回值两种形式只能二选一,混用时将会发生编译错误,例如下面的代码:

复制纯文本复制
func namedRetValues() (a, b int, int)

func namedRetValues() (a, b int, int)

编译报错提示:

mixed named and unnamed function parameters

意思是:在函数参数中混合使用了命名和非命名参数。

读到这里,这篇“go语言怎么调用函数”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: go语言怎么调用函数

本文链接: https://www.lsjlt.com/news/346578.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • go语言怎么调用函数
    本文小编为大家详细介绍“go语言怎么调用函数”,内容详细,步骤清晰,细节处理妥当,希望这篇“go语言怎么调用函数”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在go语言中,定义了函数之后,我们可以通过“函数名()...
    99+
    2023-07-04
  • Go语言中的函数怎么调用
    本篇内容介绍了“Go语言中的函数怎么调用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.函数的声明定义//func关键字//getStud...
    99+
    2023-07-02
  • go语言调用函数方法是什么
    在go语言中,定义了函数之后,我们可以通过“函数名()”的方式调用函数,语法“返回值变量列表 = 函数名(参数列表)”。当“()”中包含多个参数时,参数变量以逗号分隔,尾部无须以分号结尾;“返回值变量列表”中,多个返回值使用逗号分隔。本教程...
    99+
    2023-05-14
    Golang go语言 Go
  • go语言怎么调用c语言
    Go语言可以通过使用cgo工具以及一些特定的语法来调用C语言代码。 以下是调用C语言的Go代码示例: 创建一个名为 `callc....
    99+
    2023-10-27
    go语言 c语言
  • GO语言中回调函数的使用
    目录0.前言1.使用2.几个例子2.1 异步访问URL2.2 Sort.Slice函数2.3 简易计算器0.前言 回调函数是一种在编程中常见的技术,通常在异步编程中使用。简单来说,回...
    99+
    2023-03-06
    GO语言回调函数 GO 回调
  • go语言中函数的定义是什么及怎么调用
    本文小编为大家详细介绍“go语言中函数的定义是什么及怎么调用”,内容详细,步骤清晰,细节处理妥当,希望这篇“go语言中函数的定义是什么及怎么调用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在go语言中,函数是组...
    99+
    2023-07-04
  • c语言socket函数怎么调用
    在C语言中,我们可以使用头文件和来调用socket函数。首先需要创建一个socket,使用socket函数来创建一个套接字。函数原型...
    99+
    2023-10-12
    c语言
  • c语言函数system怎么调用
    在C语言中,可以使用`system()`函数来调用系统命令。`system()`函数的原型如下:```cint system(con...
    99+
    2023-10-11
    c语言
  • c语言wait函数怎么调用
    在C语言中,可以使用wait()函数来等待子进程的结束。以下是wait()函数的调用方法:c#include <sys/typ...
    99+
    2023-10-23
    c语言
  • c语言fact函数怎么调用
    在C语言中,可以通过以下方式调用fact函数:1. 在另一个函数中调用fact函数:```c#include // 声明fact函数...
    99+
    2023-08-08
    c语言 fact
  • Go语言之init函数怎么使用
    今天小编给大家分享一下Go语言之init函数怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。init函数会在main函...
    99+
    2023-07-02
  • Go语言函数的延迟调用(DeferredCode)详解
    目录基本功能示例一:延迟调用执行顺序示例二:多defer使用方法实例三:defer与局部变量、返回值的关系先解释一下这篇Blog延期的原因,本来已经准备好了全部内容,但是当我重新回顾...
    99+
    2022-11-13
  • GO语言中的回调函数如何使用
    这篇文章主要介绍了GO语言中的回调函数如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇GO语言中的回调函数如何使用文章都会有所收获,下面我们一起来看看吧。0.前言回调函数是一种在编程中常见的技术,通常在异...
    99+
    2023-07-05
  • c语言中seek函数怎么调用
    在C语言中,seek函数用于设置文件指针的位置。其调用方式如下:```c#include int fseek(FILE *strea...
    99+
    2023-09-14
    c语言
  • Go语言怎么使用变长参数函数
    目录01 介绍02 变长参数03 变长参数函数04 使用场景05 总结本文我们主要介绍在 Go 语言中怎么使用变长参数函数,先是介绍变长参数和变长参数函数的相关知识,然后列举了一个简...
    99+
    2022-11-13
  • Go语言函数怎么定义与使用
    今天小编给大家分享一下Go语言函数怎么定义与使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.前言函数是一段代码的片段,...
    99+
    2023-07-04
  • GO语言延迟函数defer怎么使用
    今天小编给大家分享一下GO语言延迟函数defer怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。go语言中defer最...
    99+
    2023-07-05
  • Go语言如何实现分布式函数调用?
    随着互联网的迅速发展,分布式系统已经成为了现代互联网应用架构中的必备技术。在分布式系统中,函数调用是非常常见的一种交互方式。Go语言是近年来备受关注的编程语言,其并发性和高效性使其成为了分布式系统开发的热门语言之一。本文将介绍如何使用Go...
    99+
    2023-09-12
    分布式 unix 函数
  • Go语言函数的延迟调用实例分析
    今天小编给大家分享一下Go语言函数的延迟调用实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。基本功能在以下这段代码中,...
    99+
    2023-07-02
  • c语言怎么调用函数判断素数
    可以封装一个函数来判断一个数是否为素数,然后在主函数中调用这个函数来判断。以下是一个示例代码:```c#include int is...
    99+
    2023-10-12
    c语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作