diff --git a/ebook/02.2.md b/ebook/02.2.md index 168be8079..759808176 100644 --- a/ebook/02.2.md +++ b/ebook/02.2.md @@ -8,26 +8,26 @@ Go语言里面定义变量有多种方式。 使用`var`关键字是Go最基本的定义变量方式,与C语言不同的是Go把变量类型放在变量名后面: - //定义一个名称为“variableName”,类型为"type"的变量 - var variableName type + //定义一个名称为“v1”,类型为"int"的变量 + var v1 int 定义多个变量 - //定义三个类型都是“type”的三个变量 - var vname1, vname2, vname3 type + //定义三个类型都是“int”的三个变量 + var v2, v3, v4 int 定义变量并初始化值 - //初始化“variableName”的变量为“value”值,类型是“type” - var variableName type = value + //初始化“v5”的变量为数值1024,类型是“int” + var v5 int = 1024 同时初始化多个变量 /* - 定义三个类型都是"type"的三个变量,并且它们分别初始化相应的值 + 定义三个类型都是"int"的三个变量,并且它们分别初始化相应的值 vname1为v1,vname2为v2,vname3为v3 */ - var vname1, vname2, vname3 type= v1, v2, v3 + var vname1, vname2, vname3 int= v1, v2, v3 你是不是觉得上面这样的定义有点繁琐?没关系,因为Go语言的设计者也发现了,有一种写法可以让它变得简单一点。我们可以直接忽略类型声明,那么上面的代码变成这样了: @@ -47,7 +47,7 @@ Go语言里面定义变量有多种方式。 */ vname1, vname2, vname3 := v1, v2, v3 -现在是不是看上去非常简洁了?`:=`这个符号直接取代了`var`和`type`,这种形式叫做简短声明。不过它有一个限制,那就是它只能用在函数内部;在函数外部使用则会无法编译通过,所以一般用`var`方式来定义全局变量。 +现在是不是看上去非常简洁了?`:=`这个符号直接取代了`var`和`int`,这种形式叫做简短声明。不过它有一个限制,那就是它只能用在函数内部;在函数外部使用则会无法编译通过,所以一般用`var`方式来定义全局变量。 `_`(下划线)是个特殊的变量名,任何赋予它的值都会被丢弃。在这个例子中,我们将值`35`赋予`b`,并同时丢弃`34`: diff --git a/ebook/02.5.md b/ebook/02.5.md index 2db1de3c7..5e66b181f 100644 --- a/ebook/02.5.md +++ b/ebook/02.5.md @@ -318,7 +318,7 @@ method的语法如下: 上面的代码设计的是如此的美妙,让人不自觉的为Go的设计惊叹! -通过这些内容,我们可以设计出基本的面向对象的程序了,但是Go里面的面向对象是如此的简单,没有任何的私有、公有关键字,通过大小写来实现(大写开头的为共有,小写开头的为私有),方法也同样适用这个原则。 +通过这些内容,我们可以设计出基本的面向对象的程序了,但是Go里面的面向对象是如此的简单,没有任何的私有、公有关键字,通过大小写来实现(大写开头的为公有,小写开头的为私有),方法也同样适用这个原则。 ## links * [目录]() * 上一章: [struct类型](<02.4.md>) diff --git a/ebook/04.1.md b/ebook/04.1.md index 9fa3b0ea3..70fc6f462 100644 --- a/ebook/04.1.md +++ b/ebook/04.1.md @@ -80,7 +80,7 @@ login函数中我们根据`r.Method`来判断是显示登录界面还是处理 `r.Form`里面包含了所有请求的参数,比如URL中query-string、POST的数据、PUT的数据,所有当你在URL的query-string字段和POST冲突时,会保存成一个slice,里面存储了多个值,Go官方文档中说在接下来的版本里面将会把POST、GET这些数据分离开来。 -现在我们修改一下login.gtpl里面form的action值`http://127.0.0.1:9090/login`修改为`http://127.0.0.1:9090/login?username=astaxie`,再次测试,服务器的输出username是不是一个slice。服务器端的输出如下: +现在我们修改一下login.gtpl里面form的action值`/login`修改为`/login?username=astaxie`,再次测试,服务器的输出username是不是一个slice。服务器端的输出如下: ![](images/4.1.slice.png?raw=true)