如何清楚地表达长列表的条件
How to Clearly Express Long List of Conditions?
考虑以下动作游戏的if语句,
if (state.isPrimaryJumping && state.timeUntilCanJump == 0 && state.isStartPrimaryJumping && state.jumpIsLoaded && state.primaryJumpsSinceTouchedGround < moveStats.maxJumps) {
// do awesome jumping stuff
}
在这种情况下,六个条件中的每一个都是不同的,没有一个可以删除。然而,该语句在页面末尾结束,很难理解。
表达一长串重要条件的最清晰方式是什么?
谢谢
当进入像这样的长if语句时,通常用换行符分隔每个条件:
if (state.isPrimaryJumping &&
state.timeUntilCanJump == 0 &&
state.isStartPrimaryJumping &&
state.jumpIsLoaded &&
state.primaryJumpsSinceTouchedGround < moveStats.maxJumps)
{
// do awesome jumping stuff
}
我更喜欢用&&在行尾,以条件而不是运算符开始下一行,但两者都可以。像这样的东西通常也包含在你的组织风格指南中。
为了使其更具可读性,我会将您的语句放入具有描述性名称的方法中,该方法返回bool
。像这样:
if (CanDoAwesomeJumpingStuff())
{
// do awesome jumping stuff
}
private bool CanDoAwesomeJumpingStuff()
{
return state.isPrimaryJumping &&
state.timeUntilCanJump == 0 &&
state.isStartPrimaryJumping &&
state.jumpIsLoaded &&
state.primaryJumpsSinceTouchedGround < moveStats.maxJumps
}
虽然它可能会添加额外的代码行,但您可以确切地知道要检查的条件是什么。
您应该在'&&':
前列出使用换行符的条件if (state.isPrimaryJumping
&& state.timeUntilCanJump == 0
&& state.isStartPrimaryJumping
&& state.jumpIsLoaded
&& state.primaryJumpsSinceTouchedGround < moveStats.maxJumps) {
// do awesome jumping stuff
}
相关文章:
- 聚合物0.5.5:核心列表中的条件模板和/或模板动态参考
- 如何附加<ul><李>元素位于某个特定条件的父元素列表之间
- 下拉列表的多个条件
- 条件过滤列表显示在angularjs中
- 比较数组并使用条件对数组列表进行排序
- 在下拉列表中显示带条件的文本
- 将值设置为有条件禁用的下拉列表
- 单击编辑按钮时,如何根据另外两个文本框的条件隐藏或禁用单选按钮列表和文本框
- 使用 jquery 禁用特定条件的下拉列表
- 将数组的至少“N”个元素与条件列表匹配
- 如何根据条件显示包含唯一项目符号的无序列表
- 如何在具有某些条件的情况下从列表中删除重复项,下划线.js
- jQuery根据条件不显示下一个下拉列表
- 条件下拉列表
- 根据下拉列表的条件禁用表单元素
- 如何在html中使用一个列表的元素作为另一个列表条件
- 将条件下拉列表写入MySQL
- Mustache-根据数组数据有条件地渲染列表
- asp.net下拉列表条件回发
- 检查给定变量是否在基于此的选择列表/条件中被选中