Go基础语法:函数+

10 函数

10.1 函数的定义

10.1.1 函数的定义

// 有参数有返回值的
func sum(x int, y int) (ret int) {return x + y
}// 有参数但无返回值
func f1(x int, y int) {fmt.Println(x + y)
}// 无参数无返回值
func f2() {fmt.Println("f2")
}//无参有返回值
func f3() int {return 3
}

10.1.2 返回值

10.1.2.1 为返回值命名

可以为返回值指定一个名字,这就相当于提前声明了一个变量,并将该变量作为返回值。


/* 声明函数时为返回值指定了名称为 ret, 在函数内部可以直接使用 ret,
* 并且函数体最后只写 return 即可,其他不需要添加 ret.
*/
func sum(x int, y int) (ret int) {ret = x + yreturn
}/*
* 声明函数时仅声明了返回值类型,没有为返回值命名。所以,函数体内部需要自定义
* 一个变量来接收结果。函数的最后需要在 return 后面添加结果。
*/
func sum2(x int, y int) int {ret := x + yreturn ret
}
10.1.2.2 多个返回值
package mainimport "fmt"func main() {// 定义两个变量分别接收 f1 的两个返回值m, n := f1()fmt.Println(m, n)// 我们仅需要其中一个返回值时,另一个不需要的返回值使用 _ 表示_, b := f1()fmt.Println(b)
}// 该函数有两个返回值, int 和 string
func f1() (int, string) {return 1, "济南"
}

10.1.3 参数

10.1.3.1 参数类型的简写

func f1(x int, y int) {fmt.Println("这是普通的参数声明方式")
}func f2(x, y int) {fmt.Println("参数中多个连续的参数类型一致时,可以省略非最后一个参数的类型")
}func f3(x, y int, m, n string, a, b bool) {fmt.Println("参数中多个连续的参数类型一致时,可以省略非最后一个参数的类型")
}
10.1.3.2 可变长度参数
  • 可变长参数必须写在函数最后
  • go 语言中没有默认参数的概念
package mainimport "fmt"func main() {f4("济南", 1, 2, 3, 4, 5, 6)
}// ...表示可变长度参数,...int 表示可以传入多个 int 值, 其本质是切片
func f4(x string, y ...int) {fmt.Println(x)fmt.Println(y)fmt.Printf("%T\n", y)
}

运行结果如下:

济南
[1 2 3 4 5 6]
[]int

10.2

P35

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/141531.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

电商后台架构演变

单机架构 在网站最初时,应用数量与用户数都较少,可以把Tomcat和数据库部署在同一台服务器上。浏览器往www.taobao.com发起请求时,首先经过DNS服务器(域名系统)把域名转换为实际IP地址10.102.4.1,浏览器转而…

图像语义分割 FCN图像分割网络网络详解

图像语义分割 FCN图像分割网络网络详解 0、介绍1、VGG16网络结构2、转置卷积3、FCN-32S、FCN-16S,FCN-8S网络结构4、损失函数5、膨胀卷积6、FCN(Backbone-ResNet-50)6.1 项目框架6.2 ResNet50网络结构6.3 FCN(Backbone-ResNet-50)网络结构6.4 FCN(Backbone-ResNet-5…

基于微信小程序的背单词学习激励系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言用户微信端的主要功能有:管理员的主要功能有:具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉…

什么是电源的纹波和噪声?

1、本文内容如有错误,欢迎交流指正。 2、本文仅作为本人学习笔记,部分内容来源于网络、书籍,如涉及侵权,请联系删除。 什么是纹波? 纹波是就是电源本身的一种周期性波动。 直流稳定电源一般是由交流电源经整流稳压形成…

拼多多商品详情数据接口

拼多多商品详情接口的具体内容。获取拼多多商品详情,可以参考如下方式: item_get_app-根据ID取商品详情原数据接口包括:标题,价格,促销价,优惠券,库存,销量,详情图片&am…

linux系统设置密钥登录

一、生成密钥文件 ssh-keygen -t 指定生成密钥的类型 -f 指定生成密钥的路径 -b 指定密钥长度,默认是2048 [rootlocalhost ~]# ssh-keygen -t rsa # 生成密钥对 Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rs…

算法与数据结构-堆

文章目录 什么是堆如何实现一个堆?如何基于堆实现排序?1. 建堆2. 排序 什么是堆 堆是一种特殊的树,特殊点有二,如下: 堆是一个完全二叉树;堆中每一个节点的值都必须大于等于(或小于等于&#…

AxureRP制作静态站点发布互联网,实现公网访问【内网穿透】

AxureRP制作静态站点发布互联网,内网穿透实现公网访问 文章目录 AxureRP制作静态站点发布互联网,内网穿透实现公网访问前言1.在AxureRP中生成HTML文件2.配置IIS服务3.添加防火墙安全策略4.使用cpolar内网穿透实现公网访问4.1 登录cpolar web ui管理界面4…

网络安全CTF比赛有哪些事?——《CTF那些事儿》告诉你

目录 前言 一、内容简介 二、读者对象 三、专家推荐 四、全书目录 前言 CTF比赛是快速提升网络安全实战技能的重要途径,已成为各个行业选拔网络安全人才的通用方法。但是,本书作者在从事CTF培训的过程中,发现存在几个突出的问题&#xff1…

详解MySQL索引+面试题

前言: 📕作者简介:热爱编程的小七,致力于C、Java、Python等多编程语言,热爱编程和长板的运动少年! 📘相关专栏Java基础语法,JavaEE初阶,数据库,数据结构和算法系列等,大家有兴趣的可以看一看。 😇😇😇有兴趣的话关注博主一起学习,一起进步吧! 一、索引概述…

电缆直埋、电缆沟、电缆井大样图

一、图纸下载: 链接:https://pan.baidu.com/s/1_SUnhFHMUY8Q_kkhgzscDQ?pwd8888 提取码:8888 二、部分图纸预览

亚马逊儿童自行车,滑板车等电动移动设备合规标准UL报告如何办理?UL 2272、UL 2849

加拿大 儿童自行车 儿童自行车适用于 14 岁以下儿童。儿童自行车的车轮由两个轮子组成,一个在另一个后面,通过踩踏推动,用连接在前轮上的车把操纵。其中一些可能配备有训练轮,这是一对平行于后轮的额外的车轮,可防止自…

SAP FI FS10N排除特定凭证类型

财务要求 需要把CO类型的凭证去掉,经过调试发现 筛选条件在GT_selection 在这个函数里面做个增强试试 *----------------------------------------------------------------------* ***INCLUDE FAGL_FILL_GT_SELECTIONS . *------------------------------------…

论文阅读:AugGAN: Cross Domain Adaptation with GAN-based Data Augmentation

Abstract 基于GAN的图像转换方法存在两个缺陷:保留图像目标和保持图像转换前后的一致性,这导致不能用它生成大量不同域的训练数据。论文提出了一种结构感知(Structure-aware)的图像转换网络(image-to-image translation network)。 Proposed Framework…

【沐风老师】3DMAX翻转折叠动画插件FoldFx使用方法详解

3DMAX翻转折叠动画插件FoldFx使用方法详解 3DMAX翻转折叠动画插件FoldFx,是3dMax运动图形工具,用于创建多边形折叠动画。用户几乎有无限的可能性,因为动画的每个方面都是可控的。 【适用版本】 适用于3dMax版本:2010及更新版本&a…

结合Mockjs与Bus事件总线搭建首页导航和左侧菜单

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《ELement》。🎯🎯 &#x1…

微信公众号开发(BUG集)

1.微信公众平台接口错误:不合法的自定义菜单使用用户 地址:解决地址 2.微信公众平台接口错误:invalid ip 180.101.72.196 ipv6 ::ffff:180.101.72.196, not in whitelist rid: 6511420b-60c59249-01084d02 白名单离开放服务器IP

【postgresql】ERROR: cannot alter type of a column used by a view or rule

修改字段类型 由varchar 改为int8。 具体sql alter table company alter column city_id type int8 using city_id::int8; 返回错误信息 > ERROR: cannot alter type of a column used by a view or rule DETAIL: rule _RETURN on view search_qy depends on column …

https跳过SSL认证时是不是就是不加密的,相当于http?

https跳过SSL认证时是不是就是不加密的,相当于http?,其实不是,HTTPS跳过SSL认证并不相当于HTTP,也不意味着没有加密。请注意以下几点: HTTPS(Hypertext Transfer Protocol Secure)本质上是在HTTP的基础上…

QT-day5

1、添加注册功能到数据库 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QMessageBox> //消息对话框类头文件 #include <QDebug> #include <QPushButton> #include <QSqlDatabase> //数据库管理类 #include…