mirror of
https://github.com/gopl-zh/gopl-zh.github.com.git
synced 2024-12-26 06:46:27 +00:00
逻辑运算符有短路行为
This commit is contained in:
parent
22f1a8a202
commit
6bd4cf4ae5
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
一个布尔类型的值只有两种:true和false。if和for语句的条件部分都是布尔类型的值,并且==和<等比较操作也会产生布尔型的值。一元操作符`!`对应逻辑非操作,因此`!true`的值为`false`,更罗嗦的说法是`(!true==false)==true`,虽然表达方式不一样,不过我们一般会采用简洁的布尔表达式,就像用x来表示`x==true`。
|
一个布尔类型的值只有两种:true和false。if和for语句的条件部分都是布尔类型的值,并且==和<等比较操作也会产生布尔型的值。一元操作符`!`对应逻辑非操作,因此`!true`的值为`false`,更罗嗦的说法是`(!true==false)==true`,虽然表达方式不一样,不过我们一般会采用简洁的布尔表达式,就像用x来表示`x==true`。
|
||||||
|
|
||||||
布尔值可以和&&(AND)和||(OR)操作符结合,并且可能会有短路行为:如果运算符左边值已经可以确定整个布尔表达式的值,那么运算符右边的值将不在被求值,因此下面的表达式总是安全的:
|
布尔值可以和&&(AND)和||(OR)操作符结合,并且有短路行为:如果运算符左边值已经可以确定整个布尔表达式的值,那么运算符右边的值将不在被求值,因此下面的表达式总是安全的:
|
||||||
|
|
||||||
```Go
|
```Go
|
||||||
s != "" && s[0] == 'x'
|
s != "" && s[0] == 'x'
|
||||||
@ -47,6 +47,3 @@ func btoi(b bool) int {
|
|||||||
// itob reports whether i is non-zero.
|
// itob reports whether i is non-zero.
|
||||||
func itob(i int) bool { return i != 0 }
|
func itob(i int) bool { return i != 0 }
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user