符号是什么:=:mean(冒号等于冒号)

时间:2012-10-04 15:17:42

标签: operators clarion colon-equals

我在一些Clarion代码中找到了符号:=:,而我似乎无法确切地知道它的作用。这段代码是多年前由前一位开发人员编写的,所以我不能问他。我也无法在Google中找到"colon equals colon"的任何结果。

以下是代码的示例,其中bufSlcdpaDtl是文件对象:

lCCRecord Like(bufSlcdpaDtl),Pre(lCCRecord)

! ...other stuff...

lCCRecord :=: bufSlcdpaDtl

我想知道它是否与::= in Pythonthe assignment operator :=类似。

1 个答案:

答案 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