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

Dan*_*nM7 4 operators clarion colon-equals

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

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

lCCRecord Like(bufSlcdpaDtl),Pre(lCCRecord)

! ...other stuff...

lCCRecord :=: bufSlcdpaDtl
Run Code Online (Sandbox Code Playgroud)

我想知道它是否类似于::=Python或可能的赋值运算符:=.

scr*_*ola 5

语言参考手册(第561页)中,这称为深度赋值运算符.语法是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
Run Code Online (Sandbox Code Playgroud)