day5 boolean
							parent
							
								
									340bf90010
								
							
						
					
					
						commit
						426ab21720
					
				|  | @ -0,0 +1,46 @@ | ||||||
|  | package main | ||||||
|  | 
 | ||||||
|  | import "fmt" | ||||||
|  | 
 | ||||||
|  | // 一个布尔类型的值只有两种:true和false。
 | ||||||
|  | // if和for语句的条件部分都是布尔类型的值,
 | ||||||
|  | // 并且==和<等比较操作也会产生布尔型的值。
 | ||||||
|  | // 一元操作符!对应逻辑非操作,因此!true的值为false
 | ||||||
|  | 
 | ||||||
|  | func main() { | ||||||
|  | 	// 布尔值可以和&&(AND)和||(OR)操作符结合,并且有短路行为:
 | ||||||
|  | 	// 如果运算符左边值已经可以确定整个布尔表达式的值,
 | ||||||
|  | 	// 那么运算符右边的值将不再被求值。
 | ||||||
|  | 	var bool1 bool = true | ||||||
|  | 	// 再遇到第一个false时,此语句以及判断为假,不需要再判断bool1的值
 | ||||||
|  | 	bool1 = false && bool1 // false
 | ||||||
|  | 	fmt.Println(bool1) | ||||||
|  | 	// 同理||也是一样的,当遇到一个true时语句以及判断为真,不需要判断后半段的值
 | ||||||
|  | 	bool1 = true || bool1 // true
 | ||||||
|  | 	fmt.Println(bool1) | ||||||
|  | 
 | ||||||
|  | 	// 布尔值并不会隐式转换为数字值0或1,反之亦然。必须使用一个显式的if语句辅助转换:
 | ||||||
|  | 	i := 0 | ||||||
|  | 	b := true | ||||||
|  | 	if b { | ||||||
|  | 		i = 1 | ||||||
|  | 	} | ||||||
|  | 	fmt.Println(i) | ||||||
|  | 
 | ||||||
|  | 	// 可以选择将其包装成一个函数
 | ||||||
|  | 	// btoi returns 1 if b is true and 0 if false.
 | ||||||
|  | 	bToi := func(b bool) int { | ||||||
|  | 		if b { | ||||||
|  | 			return 1 | ||||||
|  | 		} | ||||||
|  | 		return 0 | ||||||
|  | 	} | ||||||
|  | 	fmt.Println(bToi(false)) // 0
 | ||||||
|  | 
 | ||||||
|  | 	// 数字到bool也可以转换
 | ||||||
|  | 	// itob reports whether i is non-zero.
 | ||||||
|  | 	iTob := func(i int) bool { return i != 0 } | ||||||
|  | 	fmt.Println(iTob(1314)) // true
 | ||||||
|  | 	fmt.Println(iTob(0))    // false
 | ||||||
|  | 
 | ||||||
|  | } | ||||||
		Loading…
	
		Reference in New Issue