我在某些 Clarion 代码中找到了:=:
符号,但我似乎无法弄清楚它到底是做什么的。 代码是多年前由以前的开发人员编写的,所以我不能问他。 我也无法在谷歌中找到任何"colon equals colon"
的结果。
下面是一个代码示例,其中bufSlcdpaDtl
是一个文件对象:
lCCRecord Like(bufSlcdpaDtl),Pre(lCCRecord)
! ...other stuff...
lCCRecord :=: bufSlcdpaDtl
我想知道它是否类似于 Python 中的::=
或可能是赋值运算符:=
.
在第 561 页的语言参考手册中,这称为深度赋值运算符。语法是目标 :=: 源。目标可以是组、记录、队列 ds 或数组的标签。源可以是相同的加上数字、字符串常量、变量、过程或表达式。它将执行从一个 ds 到另一个 ds 的多个单独的组件变量分配。更多信息可以在该文件中找到,以及号角的明显故乡: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