可扩展的条件语句,在 MapForce 中类似于开关语句

为了响应多位用户的反馈,MapForce 在 MapForce 2011 Release 2 版本中对 if-else 组件进行了增强,使其能够处理任意数量的变量。这个功能类似于许多编程语言中的 switch 语句,它允许您通过将一个值与选定的条件进行匹配,轻松控制映射项目中的数据流。例如,下图所示的 if-then 组件与其他组件结合使用,用于分析温度数据,并产生以下结果:

  • 如果温度大于20,则将“真”传递给变量bool1,并将字符串“高”传递给变量value-true1。
  • 如果温度低于5度,则将“true”传递给变量bool2,并将“低”传递给变量value-true2。
  • 在任何给定的温度下,只有其中一个“值-真”参数可以为真,并且这个为真的参数会被传递给目标组件中的 "desc" 属性。

上面的截图是从安装 MapForce 时包含的示例文件 "Classify Temperatures.mfd" 中截取的,因此您可以立即处理示例数据,或者修改映射规则,以便亲身体验结果。新的可扩展的 if-else 功能可以帮助开发人员更快地构建数据映射,创建更有效地展示条件测试的映射图,并且便于测试和调试,因为扩展的 if-else 函数比由多个独立组件组成的层叠结构更容易阅读。当您需要评估大量的条件时,这一点尤其明显。下面的截图展示了一个将字符串转换为数字的示例,其中字符串包含月份的三个字母缩写。(为了节省篇幅,此 if-else 函数仅处理一年中前六个月的字符串。)

由于一个疏忽,我们在复制粘贴时忘记将五月份的输出常量从4更新为5。 这种错误更容易被发现和修复,尤其是在您可以一目了然地看到所有逻辑的情况下更新: 我们最初创建这个示例是为了说明“扩展的条件判断”相比于嵌套或层叠的条件判断结构所具有的优势。后者可能会迅速变得过于庞大,难以在单个屏幕上完整显示。如果您想了解如何通过使用查找表来更好地解决这个问题以及其他类似的问题,请参考以下内容 MapForce 中的“switch”语句与“查找表”的比较 (博客文章。)

亲自体验一下,在您自己的数据映射项目中,使用增强的 if-else 函数是多么的简单。 下载 MapForce 的免费 30 天试用版