From e7f319d1eea68100e8c0729a6bcd3eaa1563a379 Mon Sep 17 00:00:00 2001 From: astaxie Date: Tue, 28 Aug 2012 18:06:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E4=B8=80=E5=8F=A5?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E6=96=87=E6=A1=A3=E7=9A=84=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 2.3.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/2.3.md b/2.3.md index 206d5174..feab7202 100644 --- a/2.3.md +++ b/2.3.md @@ -215,10 +215,11 @@ sExpr和expr1、expr2、expr3的类型必须一致。Go的switch非常灵活。 fmt.Printf("max(%d, %d) = %d\n", y, z, max(y,z)) //just call it here } -上面这个里面我们可以看到max函数有两个参数,他们的类型都是int,那么第一个可以省略,默认是后面的类型。同时我们注意到它的返回值就是一个类型,这个就是省略写法。 +上面这个里面我们可以看到max函数有两个参数,他们的类型都是int,那么第一个变量的类型可以省略,默认为离它最近的类型,同理多于2个同类型的变量或者返回值。同时我们注意到它的返回值就是一个类型,这个就是省略写法。 ###多个返回值 Go语言和C相比,更先进的地方,其中一点就是能够返回多个值,也许这个思想来源于python。 + 我们直接上代码看例子 package main @@ -239,7 +240,7 @@ Go语言和C相比,更先进的地方,其中一点就是能够返回多个 fmt.Printf("%d * %d = %d\n", x, y, xTIMESy) } -上面的例子我们可以看到直接返回了两个参数,当然我们也可以命名返回参数的变量,这个例子里面只是用了两个类型,我们也可以改成如下这样的定义,然后返回的时候不用带上变量名,因为直接在函数里面初始化了 +上面的例子我们可以看到直接返回了两个参数,当然我们也可以命名返回参数的变量,这个例子里面只是用了两个类型,我们也可以改成如下这样的定义,然后返回的时候不用带上变量名,因为直接在函数里面初始化了。但是当你的函数如果是导出的(首字母大写),官方建议,不要命名返回值名称,因为这样会造成生成的文档不易读。 func SumAndProduct(A, B int) (add int, Multiplied int) { add = A+B