前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >夯实基础:Go 语言函数声明和参数传递

夯实基础:Go 语言函数声明和参数传递

作者头像
aoho求索
发布2021-09-02 09:50:08
6720
发布2021-09-02 09:50:08
举报
文章被收录于专栏:aoho求索

持续更新 Go 语言入门文章,本文简短精悍,帮助各位同学快速入门 Go 语言函数声明和参数传递。

前文回顾

前面的文章主要介绍了 Go 语言中提供的常用容器,包括数组、切片,列表和字典等,还介绍了这些容器的遍历方法。本文开始将会介绍 Go 语言中相关的函数和接口。

函数是一段封装好、可重复使用、针对单一功能的代码片段,它有利于程序的模块化和提高代码的可重用性。接口中定义了一系列将要被实现的方法,它代表了调用方和实现方共同遵守的协议,调用方通过接口了解可使用的方法而无需了解具体实现,实现方通过接口对外提供能使用的特性。

函数声明和参数传递

函数首先要进行声明,Golang 中函数声明包括函数名、参数列表、返回参数列表,具体样式如下所示:

代码语言:javascript
复制
func name(params)(return params){
 function body
}

Golang 中函数以 func 标识,我们在之前的例子中声明的 main 函数也是其中一种。函数名可以由字母、数字和下划线组成,但是函数名第一位不能是数字,在同一个包内,函数名不可重名。一个函数如果希望被包外代码访问,函数名的首字母需要为大写。

参数列表中的每个参数由参数变量名和参数类型组成,它们将作为函数的局部变量被使用。在参数列表中,多个参数之间通过逗号分隔。如果相邻的参数的类型是相同的,则可以省略类型,如下例子所示:

代码语言:javascript
复制
func cal(a, b int) int {
 return a + b;
}

在上面例子中,参数 ab 都是 int 类型,因此可以省略 a 的类型说明。

Golang 中函数不仅支持多返回值,还支持对返回值进行命名,此时返回参数列表与参数列表类似,如下例子所示:

代码语言:javascript
复制
func div(dividend, divisor int)(quotient, remainder int) {
 quotient = dividend/divisor
 remainder = dividend%divisor
 return
}

在上面正整数除法的函数中,我们对返回值分别命名为 quotientremainder ,于是我们可以直接在函数体内对他们进行赋值。需要注意的是,在使用命名返回值的函数中,在函数结束前我们需要显式使用 return 语句进行返回。命名返回值和非命名返回值不能混合使用,两种形式只能二选一,否则会出现编译错误。

小结

本文主要介绍了函数声明和参数传递。函数是基本的代码块,用于执行一个任务。Go 程序最少有个 main() 函数。通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务。函数声明告诉了编译器函数的名称,返回类型,和参数。

Golang 中函数参数的传递方式都是值传递,在实际开发中为了减少拷贝时产生的性能损耗,我们可以在参数中使用指针或者引用(切片)来减少内存复制的操作。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 aoho求索 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 持续更新 Go 语言入门文章,本文简短精悍,帮助各位同学快速入门 Go 语言函数声明和参数传递。
  • 前文回顾
  • 函数声明和参数传递
  • 小结
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档