文档章节

Go 语言初级教程之五[函数]

刘赤龙
 刘赤龙
发布于 2010/06/08 16:01
字数 337
阅读 207
收藏 1

声明函数的语法与C不同。就像变量声明一样,类型是在它们所描述的术语之后声明的。在C语言中:

  1. int add(int a, b) { return a + b }


在Go里面是这样描述的:
 

  1. func add(a, b int) int { return a + b }



多返回值
在C语言当中常见的做法是保留一个返回值来表示错误(比如,read() 返回0),或 者保留返回值来通知状态,并将传递存储结果的内存地址的指针。这容易产生了不安全的编程实践,因此在像Go语言这样有良好管理的语言中是不可行的。
认识到这一问题的影响已超出了函数结果与错误通讯的简单需求的范畴,Go的作者们在语言中内建了函数返回多个值的能力。
作为例子,这个函数将返回整数除法的两个部分:
 

  1. func divide(a, b int) (int, int) {
     
  2.     quotient := a / b  
     
  3.     remainder := a % b  
     
  4.     return quotient, remainder
     
  5. }


有了多个返回值,有良好的代码文档会更好——而Go允许你给返回值命名,就像参数一样。你可以对这些返回的变量赋值,就像其它的变量一样。所以我们可以重写divide

阅读全文>>

本文转载自:http://www.mylogged.com/?post=69

刘赤龙
粉丝 14
博文 142
码字总数 0
作品 0
昌平
架构师
私信 提问
高性能 NoSQL 多模型数据库 - ArangoDB

ArangoDB 是一个开源的分布式原生多模型数据库 (Apache 2 license)。 理念 利用一个引擎,一个 query 语法,一项数据库技术,以及多个数据模型,来最大力度满足项目的灵活性,简化技术堆栈,...

匿名
2013/02/06
17.5K
10
Linux系统Oracle12.2 RAC集群实施维护_Oracle数据库12cR2(项目实战之五)

课程目标 风哥Oracle数据库教程12cR2(项目实战系列)之五:Linux系统上Oracle 12.2 RAC实施与基本维护,包括系统安装与环境配置、ASM存储配置、Oracle 12cR2 RAC集群软件安装、RAC数据库软件...

风哥Oracle
2018/06/28
0
0
程序人生——为什么高级、初级程序员都重要呢?

每个找工作的程序员都必然会遇到这样的招聘贴:寻找“高级程序员”或“初级/入门级程序员”——也许你并没有真正理解这两者之间的区别。与此同时,许多招聘经理可能也不明白其中的区别,他们...

欧阳海阳
2018/07/18
0
0
[Zephir官方文档翻译之五] 入门指导

入门指导 Zephir还有这本手册,是为了PHP开发者想开发C扩展并降低复杂度面打算的。 我们假设你有编程语言的基础。我们会在介绍的时候尽可能的向PHP,C,Javascript等语言的特点来陈述。 如果...

风一样的世界
2014/09/26
624
0
redux-saga 初级学习教程

redux-saga 初级学习教程 1. 见证 saga 2. 基本概念 先从 的三原则谈起: 唯一的状态源:Store 唯一触发状态修改的方法: Action 唯一转换状态的纯函数: Reducer redux.png 三者中可以添加异...

大灰狼的小绵羊哥哥
2018/12/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
41分钟前
7
0
使用logstash同步MySQL数据到ES

概述   在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。   在使用logstas...

zxiaofan666
51分钟前
9
0
X-MSG-IM-分布式信令跟踪能力

经过一周多的鏖战, X-MSG-IM的分布式信令跟踪能力已基本具备, 特点是: 实时. 只有要RX/TX就会实时产生信令跟踪事件, 先入kafka, 再入influxdb待查. 同时提供实时sub/pub接口. 完备. 可以完整...

dev5
今天
7
0
OpenJDK之CyclicBarrier

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CyclicBarrier是Doug Lea在JDK1.5中引入的,作用就不详细描述了,主要有如下俩个方法使用: await()方法,如果当前线...

克虏伯
今天
8
0
实战项目-学成在线(八)

在前后端分离架构中,服务层被拆分成了很多的微服务,微服务的信息如何管理?Spring Cloud中提供服务注册中心来管理微服务信息。 注册中心作用: 1、微服务数量众多,要进行远程调用就需要知...

lianbang_W
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部