前言:

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

一、Go语言中的函数

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

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

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

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

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

最新文章

  1. struts2默认配置文件 struts-default.xml
  2. 轻松自动化---selenium-webdriver(python) (九)
  3. VM下的linux系统上不了网?? 使用putty远程登录不上linux的解决方法?
  4. Android Thread和AsyncTask
  5. 【HDOJ】3309 Roll The Cube
  6. 如何用Ettercap实现“中间人攻击”(附下载链接)
  7. MyeclipseJRE版本设置
  8. PHP-无限级分类
  9. 顶点/片元 shader 总结
  10. Communications link failure异常解决
  11. 【原创】大数据基础之Spark(5)Shuffle实现原理及代码解析
  12. 棋盘游戏,dfs搜索
  13. 转载 usb_alloc_coherent 和 usb_free_coherent
  14. Win32编程之静态库编写与使用.动态链接库的编写与使用
  15. Luogu P2336 [SCOI2012]喵星球上的点名
  16. 机器人关节空间轨迹规划--S型速度规划
  17. java中synchronized关键字分析
  18. BZOJ1592 POJ3666 [Usaco2008 Feb]Making the Grade 路面修整 左偏树 可并堆
  19. VC字符串转换常用函数
  20. flask sqlaichemy中filter和filter_by

热门文章

  1. paip.抓取网页内容--java php python
  2. paip.提高效率---微信 手机app快速开发平台—微网络撬动大市场
  3. bzoj 1191: [HNOI2006]超级英雄Hero
  4. shell日期的应用
  5. Java 定时任务
  6. Windows KB2984972安装后堵住了一个windows 7 桌面可以多个用户远程访问桌面的漏洞。
  7. CCNA实验1.port-security
  8. 解决方案: scp/ssh 的登陆提示很慢 (Linux)
  9. JXLS 双循环模板
  10. linux shell脚本备份mysql数据库