mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-12 07:34:06 +08:00
05.1.md
This commit is contained in:
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
这里还有一些其它的学习资源噢~
|
这里还有一些其它的学习资源噢~
|
||||||
|
|
||||||
- [《Go编程基础》](https://github.com/Unknwon/go-fundamental-programming):已更新至 [第八课](https://github.com/Unknwon/go-fundamental-programming/blob/master/lecture8/lecture8.md)
|
- [《Go编程基础》](https://github.com/Unknwon/go-fundamental-programming):已更新至 [第9课](https://github.com/Unknwon/go-fundamental-programming/blob/master/lecture9/lecture9.md)
|
||||||
- [《Go Web编程》](https://github.com/astaxie/build-web-application-with-golang)
|
- [《Go Web编程》](https://github.com/astaxie/build-web-application-with-golang)
|
||||||
|
|
||||||
神马?你说你不想学习?那好吧,去逛逛论坛看看行情也行~
|
神马?你说你不想学习?那好吧,去逛逛论坛看看行情也行~
|
||||||
|
@@ -1,20 +1,20 @@
|
|||||||
#5.1 if else 结构
|
#5.1 if-else 结构
|
||||||
if 判断一个条件(boolean类型或是否合理)语句:如果该条件成立,则执行if之后{}之间的语句,如果不成立if结构将被忽略,继续执行if之后的代码.
|
if 是用于测试某个条件(布尔型或逻辑型)的语句,如果该条件成立,则会执行 if 后由大括号括起来的代码块,否则就忽略该代码块继续执行后续的代码。
|
||||||
<pre>
|
|
||||||
if condition {
|
if condition {
|
||||||
// do something
|
// do something
|
||||||
}
|
}
|
||||||
</pre>
|
|
||||||
在两个分支的情况下,可以在if condition{}之后添加else{}结构,当if condition条件不成立时,执行else{}之间的语句;if else两个独立的分支(只能有一个执行)
|
如果存在第二个分支,则可以在上面代码的基础上添加 else 关键字以及另一代码块,这个代码块中的代码只有在条件不满足时才会执行。if 和 else 后的两个代码块是相互独立的分支,只可能执行其中一个。
|
||||||
<pre>
|
|
||||||
if condition {
|
if condition {
|
||||||
// do something
|
// do something
|
||||||
} else {
|
} else {
|
||||||
// do something
|
// do something
|
||||||
}
|
}
|
||||||
</pre>
|
|
||||||
在三个分支的情况下,可以在else之后加上if condition,那么我们有了三个独立的分支.
|
如果存在第三个分支,则可以使用下面这种三个独立分支的形式:
|
||||||
<pre>
|
|
||||||
if condition1 {
|
if condition1 {
|
||||||
// do something
|
// do something
|
||||||
} else if condition2 {
|
} else if condition2 {
|
||||||
@@ -22,18 +22,23 @@ if 判断一个条件(boolean类型或是否合理)语句:如果该条件成立,
|
|||||||
}else {
|
}else {
|
||||||
// catch-all or default
|
// catch-all or default
|
||||||
}
|
}
|
||||||
</pre>
|
|
||||||
else if 分支的数量是没有限制的,但是为了代码的可读性,还是不要在if 后面加入太多的else if结构.当使用这种形式时,把最有可能成立的条件,放在最前面.即使当{}之间只有一条语句时,{}也不可省略.(有些人不喜欢这样.从另一方面来说,这样代码更一致,符合主流的软件工程原则.)
|
else-if 分支的数量是没有限制的,但是为了代码的可读性,还是不要在 if 后面加入太多的 else-if 结构。如果你必须使用这种形式,则把尽可能先满足的条件放在前面。
|
||||||
if和else 之后的大括号{ 必须和if 或else 在同一行. else if 和 else 必须与他们前一个结构的结束大括号 } 在同一行.这些规则是强制性的,否则不能编译通过.
|
|
||||||
|
即使当代码块之间只有一条语句时,大括号也不可被省略(尽管有些人并不赞成,但这还是符合了软件工程原则的主流做法)。
|
||||||
|
|
||||||
|
关键字 if 和 else 之后的左大括号 `{` 必须和关键字在同一行,如果你使用了 else-if 结构,则前段代码块的右大括号必须和 else-if 关键字在同一行。这两条规则都是被编译器强制规定的。
|
||||||
|
|
||||||
非法的Go代码:
|
非法的Go代码:
|
||||||
|
|
||||||
if x{
|
if x{
|
||||||
}
|
}
|
||||||
else { //INVALID
|
else { // 无效的
|
||||||
}
|
}
|
||||||
|
|
||||||
注意每个分支被缩进了4(或者8)个空格或1个tab,并且结束大括号}和if是垂直对齐的;执行gofmt时,这些会自动执行.
|
要注意的是,在你使用 `gofmt` 格式化代码之后,每个分支内的代码都会缩进 4 个或 8 个空格,或者是 1 个 tab,并且右大括号与对应的 if 关键字垂直对齐。
|
||||||
|
|
||||||
|
CHECK
|
||||||
有时,条件两边的括号()是可以省略的,当条件比较复杂时,使用括号()可以让代码更清楚.条件可以是复合条件,使用逻辑操作符&&, || 和!,通过使用()可以强制优先级,提高代码可读性.
|
有时,条件两边的括号()是可以省略的,当条件比较复杂时,使用括号()可以让代码更清楚.条件可以是复合条件,使用逻辑操作符&&, || 和!,通过使用()可以强制优先级,提高代码可读性.
|
||||||
|
|
||||||
一种可能的应用是测试变量值,在不同的情况下,执行不同的语句,但是5.3章节讲到的switch语句更适合这种场景.
|
一种可能的应用是测试变量值,在不同的情况下,执行不同的语句,但是5.3章节讲到的switch语句更适合这种场景.
|
||||||
|
Reference in New Issue
Block a user