我必须将Lotus Formula的20年代码翻译成Lotus Script。原始代码包含一些preutation运算符,我不认为它是在Lotus Script中实现的。
这是我必须翻译的一行。
@If(Transport *= "Car" : "Bus" : "Boat" | (Transport *= "Airplane" & someOtherCondition); doSomething; doSomethingElse)
我知道我可以Transport *= "Airplane"
翻译doc.getFirstItem("Transport").Contains("Airplane")
,但Transport *= "Car" : "Bus" : "Boat"
代表什么?
我不想使用评估功能,如果我没有其他选择,我只会使用它。
以下是Permutation操作员官方文档的link。
答案 0 :(得分:2)
List1 *= List2
*=
将 List1中的每个元素与 List2中的每个元素进行比较。如果至少有一个匹配则返回@True。
List1 = List2
=
将List1中的第一个元素与List2中的第一个元素进行比较,将来自List1的第二个元素与进行比较List2中的第二个元素,依此类推。如果一个列表的元素少于另一个列表,则较短列表中的最后一个元素将用于与较长列表的其余元素进行比较。如果至少有一个匹配则返回@True。
*=
与=
不同,前提是双方都有列表。
你的公式
@If(Transport *= "Car" : "Bus" : "Boat"; ...
可以"翻译"到
set item = doc.getFirstItem("Transport")
If item.Contains("Car") Or item.Contains("Bus") Or item.Contains("Boat") Then
...
然而,不要犹豫在LotusScript中使用Evaluate
:它快速可靠。