我在一些Clarion代码中找到了符号:=:
,而我似乎无法确切地知道它的作用。这段代码是多年前由前一位开发人员编写的,所以我不能问他。我也无法在Google中找到"colon equals colon"
的任何结果。
以下是代码的示例,其中bufSlcdpaDtl
是文件对象:
lCCRecord Like(bufSlcdpaDtl),Pre(lCCRecord)
! ...other stuff...
lCCRecord :=: bufSlcdpaDtl
我想知道它是否与::=
in Python或the assignment operator :=
类似。
答案 0 :(得分:5)
第561页的language reference manual这称为深度赋值运算符。语法是destination:=:source。 Destination可以是GROUP,RECORD,QUEUE ds或数组的标签。源可以是相同的加上数字,字符串const,变量,过程或表达式。它将执行从一个ds到另一个ds的多个单独的组件变量赋值。更多信息可以在该文件中找到,也可以在明显的家中找到:http://www.softvelocity.com/
Deep Assignment运算符的一个很好的例子:
Group1 GROUP
S SHORT
L LONG
END
Group2 GROUP
L SHORT
S REAL
T LONG
END
ArrayField SHORT,DIM(1000)
CODE
Group2 :=: Group1 ! Is equivalent to:
! Group2.S = Group1.S
! Group2.L = Group1.L
! and performs all necessary data conversion
ArrayField :=: 7 ! Is equivalent to:
! LOOP I# = 1 to 1000
! ArrayField[I#] = 7
! END