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

本文通过几个简单的Go语言示例介绍了短路求值的概念及其应用。文章演示了如何利用Go语言的短路求值特性来优化if条件判断语句,并展示了不同场景下短路求值的行为差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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()
}

转载于:https://www.cnblogs.com/scala/p/9592266.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值