4

:=:在一些 Clarion 代码中找到了这个符号,但我似乎无法弄清楚它到底是做什么的。该代码是多年前由以前的开发人员编写的,所以我不能问他。我也无法"colon equals colon"在 Google 中找到任何结果。

这是代码示例,其中bufSlcdpaDtl是文件对象:

lCCRecord Like(bufSlcdpaDtl),Pre(lCCRecord)

! ...other stuff...

lCCRecord :=: bufSlcdpaDtl

我想知道它是否类似于::=Python赋值运算符:=

4

1 回答 1

6

在第 561 页的语言参考手册中,这称为深度赋值运算符。语法是目标:=:源。Destination 可以是 GROUP、RECORD、QUEUE ds 或数组的标签。源可以是相同的加上数字、字符串 const、变量、过程或表达式。它将执行从一个 ds 到另一个的多个单独的组件变量分配。更多信息可以在该文档以及 clarion 的明显主页中找到:http: //www.softvelocity.com/

深度赋值运算符的一个很好的例子:

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
于 2012-10-04T15:36:06.553 回答