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)
在语言参考手册(第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)