博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
让我们一起Go(九)
阅读量:7223 次
发布时间:2019-06-29

本文共 799 字,大约阅读时间需要 2 分钟。

hot3.png

前言:

又好久么更新了,无奈公司项目多,自己又接了私活,于是时间更不够了......不过我是不会让它流产的,坚持!

一、Go语言中的函数

终于轮到函数了,其实也没有什么好说的,无非就是一个语法问题,c语言有c语言的语法,c#有c#的语法,那么Go语言的函数如何呢?在前面的文章中

其实已经看到过一些简单的函数了,今天我们再来详细看看,所以请看下面:

 在上述的代码中,我们一共声明并定义了两个函数,一个是say,另一个则是一个匿名函数,而且这里通过匿名函数,生成了一个函数闭包。在Go语言中

使用func关键字声明一个函数。因此,如果你要声明一个函数,马上要想到func,不管是不是匿名函数,唯一的区别就是匿名函数后面没有函数名称了,直接

func(参数列表)(返回值)。从上面我们也看到了,Go语言函数的返回类型在函数名的后面,和它声明变量的类型一样,这也与大部分语言不同的。而且函数的返回值可以是一个,也可以多个。比如上面的say函数,我们就返回了两个,一个整数类型,一个error。其中整数类型的是可变参数的长度,error类型则是从fmt包中Printf函数返回的值中的其中一个,而且我们看到接受fmt.Printf()函数返回值的第一个变量我们使用了"_"符号,这个代表我们不关心第一个返回值,将它忽略。接下来再来看say函数的第二个参数,是一个...interface{}类型,三个点是Go语言的一种类型Slices,类似数组,但是有所不同,这个将在后续文章中继续介绍,既然是一个类似数组的类型,当然也可以想到可变参数可以接收任意多个,但是必须是相同类型的,而这里使用一个空接口类型作为Slices的元素类型,使得可以接收任意类型参数的元素,之后可以通过缺省参数推断出每一个元素真实的类型。

转载于:https://my.oschina.net/u/1446855/blog/643514

你可能感兴趣的文章
启动vsftpd失败
查看>>
yii2组件之下拉框带搜索功能(yii-select2)
查看>>
Java串口通信详解
查看>>
Newtonsoft 自定义输出内容
查看>>
HTML图片元素(标记)
查看>>
windows server 2008 域控安装
查看>>
编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议6~10)...
查看>>
Oracle查看和修改连接数(进程/会话/并发等等)
查看>>
【SpringMVC学习06】SpringMVC中的数据校验
查看>>
Laravel错误与日志处理
查看>>
微信小程序开发教程第七章:微信小程序编辑名片页面开发
查看>>
Java并发编程:Java ConcurrentModificationException异常原因和解决方法
查看>>
浅谈iOS中MVVM的架构设计
查看>>
node.js 中模块的循环调用问题详解
查看>>
ActiveReports 报表应用教程 (6)---分组报表
查看>>
OLEDB操作Excel
查看>>
struts2的json-default和struts-default的区别
查看>>
java中<> 的用法
查看>>
IIS 下配置无后缀的URL ReWrite
查看>>
对Asp.net Mvc 和 jQuery UI使用者的一些忠告
查看>>