MapForce 中的“switch”语句与“查找表”的比较
与软件开发人员合作的诸多优点之一在于,您不仅可以创造前所未有的新事物,还能了解其他人的思维方式,观察他们在面对设计难题时如何寻找不同的解决方案。我们最近发布的一篇文章中,一位软件开发人员发表了评论,文章标题是: 可扩展的条件语句,在 MapForce 中类似于开关语句 关于我们使用的其中一个例子,读者指出,我们的第二个例子所展示的问题,如果采用其他方法,可以得到更优雅的解决方案 Altova MapForce 使用 Value-Map 的方式比使用我们扩展的 if-else 语句更有效。以下是最初的示例,它接收月份作为字符串,并需要生成相应的数字:
![]()
在 MapForce 中,"值映射" (Value-Map) 是一种替代方案,它作为一种查找表发挥作用,而 "扩展的 If-Else" 语句则类似于一个开关语句。以下是使用 "值映射" 替代 "扩展的 If-Else" 语句后的映射方式:
![]()
是的,就是这样。与我们最初构建的“扩展的条件语句”那样,通过复制、粘贴和修改一系列元素来实现不同,使用“值映射”功能,我们可以轻松地在它的属性对话框中创建整个查找表
![]()
我们同意评论者的观点——对于我们选择的问题,Value-Map 的确比其他方法更有效,因为它创建起来更快、更简单! Value-Map属性中的表格在MapForce中也更加简洁易懂生成的映射文档 比我们最初的扩展型条件语句结构更简洁。 当然,你做不到 始终 将扩展的条件语句(if-else语句)替换为值映射表。 进入“值映射”的数据必须与输入表格中的某个单一值相__相等__,才能生成特定的输出结果。而“扩展的条件判断”功能则允许您设置一系列条件,并使用不同的逻辑测试。 有时,数据转换项目的具体情况决定了是否应该使用切换元素,还是查找表,这需要根据实际情况进行判断。 假设您的项目接收到的输入是一个数字,该数字代表电磁光谱中的一个波长,并且您希望分别处理紫外线、可见光和红外线能量。 在这种情况下,我们可以使用扩展的“如果-否则”结构来测试输入值的范围。 映射中的“扩展的条件判断”部分可能如下所示:
![]()
如果输入是整数,您也可以使用“值映射”功能来构建解决方案,但您需要创建一个非常大的查找表。 此外,如果后续项目需求发生变化,输入变为小数,或者您需要按名称单独过滤每个可见颜色,该怎么办? 实际上,Altova MapForce是一个非常棒的图形化工具,它代表了一个完整的软件语言工具箱,可以帮助您摆脱复杂的编程语言语法,并提供丰富的组件,您可以灵活地组合这些组件来解决您自己的数据映射、转换和集成难题。
亲自体验一下,将 MapForce 应用于您自己的数据映射项目,看看它有多么容易上手。 下载免费的 30 天试用版 的 MapForce。