重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章将为大家详细讲解有关Go语言基础中函数的基本定义和调用是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
创新互联公司成立与2013年,公司自成立以来始终致力于为企业提供官网建设、移动互联网业务开发(成都微信小程序、手机网站建设、成都app软件开发等),并且包含互联网基础服务(域名、主机服务、企业邮箱、网络营销等)应用服务;以先进完善的建站体系及不断开拓创新的精神理念,帮助企业客户实现互联网业务,严格把控项目进度与质量监控加上过硬的技术实力获得客户的一致赞誉。
几乎所有编程语言都支持函数,编写函数的目的在于将复杂的问题分解为一系列简单的任务来处理,此外同一个函数还可以被多次复用,这一结构在面向过程的函数式编程中至关重要。同为类 C 语言,Go 语言的函数和 PHP 函数的基本结构差不多,只是具体细节有所差异,在 Go 语言中,函数的基本组成为:关键字 func
、函数名、参数列表、返回值、函数体和返回语句,作为强类型语言,无论是参数还是返回值,在定义函数时,都要声明其类型。
在 Go 语言中,函数主要有三种类型:
普通函数
匿名函数(闭包)
类方法
我们将从普通函数的基本定义和调用开始,揭开 Go 函数的面纱。
在前面的第一个 Go 程序教程中,我们已经给大家演示过函数的基本定义和调用示例,这里我们用一个最简单的加法函数来进行详细说明:
func add(a, b int) int { return a + b}
如果我们调用 add(1, 2)
,返回结果是 3
:
func main() { fmt.Println(add(1, 2)) // 3}
下面我们以 add
函数为例介绍函数的定义,如果函数的参数列表中包含若干个类型相同的参数,比如上面例子中的 a
和 b
,则可以在参数列表中省略前面变量的类型声明,只保留最后一个,如下所示:
func add(a, b int) int { // ...}
紧随参数列表之后的是该函数返回值的类型(这一点和 Go 变量一样,将类型放在最后,而与其他静态强类型语言,如 Java、C 的函数声明方式不同):
func add(a, b int) int { // ...}
此外,Go 函数还支持多个返回值,后面我们介绍函数返回值的时候,再具体讨论。
函数调用非常方便,如果是在同一个包中(即定义在同一个目录下的 Go 文件中),只需直接调用即可:
func main() { fmt.Println(add(1, 2)) // 3}
如果是在不同的包中,需要先导入了该函数所在的包,然后才能调用该函数,比如,我们将 add
函数放到单独的 mymath
包中(函数名首字母改为大写):
package mymath
func Add(a, b int) int {
return a + b
}
然后我们可以这样在 main
包中调用 Add
函数:
package main
import (
"fmt"
"mymath"
)
func main() {
fmt.Println(mymath.Add(1, 2)) // 3
}
在跨包调用时,只有首字母大写的函数才可以被调用,这个涉及到包的可见性,后面在介绍面向对象时会详细讨论这个,这里你只需要了解首字母大写的 Go 函数即相当于其它语言的 public 函数,Go 语言中没有 public
、protected
、private
之类的关键字,它是通过首字母的大小写来区分可见性:首字母小写的函数只能在同一个包中访问,首字母大写的函数才可以在其他包中调用,Go 文件中定义的全局变量也是如此。
关于Go语言基础中函数的基本定义和调用是怎样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。