尝试了解 DOORS DXL 解释器:就地数据
Trying to understand the DOORS DXL interpreter: in place data
我无法理解为什么解释器不接受这个:
Object co = current Object
Object o = object(co."Absolute Number")
错误是:"incorrect arguments for function (object)" /
"incorrectly concatenated tokens"。我验证了由 co."Absolute Number"
编辑的 return 类型符合 Object object(int absno[, Module m])
的预期,因为它是根据 DXL 手册声明的:
print type(co."Absolute Number")
打印 "Integer"。貌似没问题,但显然不是。
这不是那个特定属性的问题。 co."Object Text"
应该 return 一个字符串,但是对于该属性也是如此,解释器无法识别数据类型。
在各个地方添加括号没有帮助。尝试将 returned 属性值显式转换为整数无济于事。有用的是将 returned 值存储到整数变量:
Object co = current Object
int no = co."Absolute Number"
Object o = object(no)
我不喜欢,因为它引入了未使用的变量。同样有效的是使用标准字符串方法:将属性值转换为字符串,然后(返回)整数:
Object o = object(intOf(co."Absolute Number" ""))
但这对我来说太老套了。我忽略了什么?
你是对的,DXL 编译器对这样的事情有点奇怪。最好的方法是你提到的那个:
Object co = current
Object o = object(intOf(co."Absolute Number" ""))
避免创建无关变量。另外,旁注:你注意到我在 current
之后遗漏了 Object
因为它是不必要的。
不过这也引出了一个问题...为什么您需要创建 co
和 o
,因为一旦执行,它们都是同一个对象的句柄。你可以这样做:
Object o = current
希望对您有所帮助。
错误消息出现在编译时,当 co."Absolute Number" 没有类型时,即编译器不查找预定义的属性或其类型。类型函数正确解析为绝对数字的运行时类型。 create函数继承left handside类型,在DXL中为Special
我无法理解为什么解释器不接受这个:
Object co = current Object
Object o = object(co."Absolute Number")
错误是:"incorrect arguments for function (object)" /
"incorrectly concatenated tokens"。我验证了由 co."Absolute Number"
编辑的 return 类型符合 Object object(int absno[, Module m])
的预期,因为它是根据 DXL 手册声明的:
print type(co."Absolute Number")
打印 "Integer"。貌似没问题,但显然不是。
这不是那个特定属性的问题。 co."Object Text"
应该 return 一个字符串,但是对于该属性也是如此,解释器无法识别数据类型。
在各个地方添加括号没有帮助。尝试将 returned 属性值显式转换为整数无济于事。有用的是将 returned 值存储到整数变量:
Object co = current Object
int no = co."Absolute Number"
Object o = object(no)
我不喜欢,因为它引入了未使用的变量。同样有效的是使用标准字符串方法:将属性值转换为字符串,然后(返回)整数:
Object o = object(intOf(co."Absolute Number" ""))
但这对我来说太老套了。我忽略了什么?
你是对的,DXL 编译器对这样的事情有点奇怪。最好的方法是你提到的那个:
Object co = current
Object o = object(intOf(co."Absolute Number" ""))
避免创建无关变量。另外,旁注:你注意到我在 current
之后遗漏了 Object
因为它是不必要的。
不过这也引出了一个问题...为什么您需要创建 co
和 o
,因为一旦执行,它们都是同一个对象的句柄。你可以这样做:
Object o = current
希望对您有所帮助。
错误消息出现在编译时,当 co."Absolute Number" 没有类型时,即编译器不查找预定义的属性或其类型。类型函数正确解析为绝对数字的运行时类型。 create函数继承left handside类型,在DXL中为Special