码迷,mamicode.com
首页 > 编程语言 > 详细

go语言学习十二 - 布尔表达式采用短路逻辑

时间:2018-09-05 17:51:06      阅读:573      评论:0      收藏:0      [点我收藏+]

标签:运行   func   import   div   imp   计算   会计   判断   函数实现   

package main

import "fmt"

func main() {

	//运行结果:a
	if true || b() { //go 的 if 判断采用短路求值,值已经确定后续的表达式不会计算也不会被调用
		fmt.Println("a")
	}

	//运行结果:ba
	if or(true, b()) { //函数的参数必须被即时求值的
		fmt.Println("a")
	}

	//运行结果:a
	if orfunc(true, b) { //传入函数参数的函数实现惰性求值
		fmt.Print("a")
	}
}

func b() bool {
	fmt.Print("b")
	return false
}

func or(a, b bool) bool {
	return a || b
}

func orfunc(a bool, b func() bool) bool {
	return a || b()
}

go语言学习十二 - 布尔表达式采用短路逻辑

标签:运行   func   import   div   imp   计算   会计   判断   函数实现   

原文地址:https://www.cnblogs.com/scala/p/9592266.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!