如何简化比较同一变量的多条件判断语句?以指定elsif代码为例
简化多条件变量判断的几种实用方法
嘿,这个场景太常见了!写一堆==加||来判断同一变量是否属于某几个值,确实显得啰嗦又不优雅,给你分享几个简洁的优化方式:
集合/数组包含判断(最通用)
把所有需要判断的运算符放进一个集合或者数组,直接检查变量是否在这个集合里就行。举个Ruby的例子:# 原代码 elsif i == '+' || i == '-' || i == '/' || i == '*' # 简化后(数组版本) elsif ['+', '-', '/', '*'].include?(i) # 如果追求更快的查询效率(元素多的时候更明显),用集合 elsif {'+', '-', '/', '*'}.include?(i)这种写法的好处是一目了然,后续要新增运算符,直接在集合里加元素就行,不用再写一堆
||。提取成常量(适合频繁使用的场景)
如果这些运算符在代码里多处用到,建议把它们定义成一个常量,不仅让代码更整洁,也方便统一维护:# 提前定义常量 OPERATORS = {'+', '-', '/', '*'} # 后面的判断 elsif OPERATORS.include?(i)模式匹配(支持的语言可用)
要是你用的是Ruby 2.7+或者Python 3.10+这类支持模式匹配的语言,还可以这么写:# Ruby 模式匹配写法 elsif i in %w[+ - / *]这种写法更贴近自然语言,可读性拉满。
总的来说,用集合/数组包含的方式是最普适的优化方案,既能简化代码,又不损失可读性,绝大多数编程语言都支持类似写法~
内容的提问来源于stack exchange,提问作者ELlama
相关产品推荐
相关产品推荐

