如何将结构附加到 ANY 类型的 table
How to append structure to a table of type ANY
DATA ls TYPE string.
DATA lr_ref TYPE REF TO data.
FIELD-SYMBOLS <'l_s> TYPE any.
FIELD-SYMBOLS <'l_t> TYPE STANDARD TABLE.
ls = 'test'.
GET REFERENCE OF ls INTO lr_ref.
ASSIGN lr_ref->* TO <'l_s>.
现在我应该如何将 <'l_s>
附加到 <'l_t>
?
您需要创建数据 like
<l_s>
的标准 table,然后将其分配给 <l_t>
。
create data lr_ref like standard table of <l_s>.
assign lr_ref->* to <l_t>.
append <l_s> to <l_t>.
它会起作用的。希望能帮助到你。
似乎对 ANY
.
等泛型存在误解
ANY
、CLIKE
等泛型和abstract类有些相似,不能实例化。你不能声明一个 ANY
类型的实际变量,当你这样想时,这是非常明智的: DATA foo TYPE i
在内存中的某个地方保留一个四字节的 space 供你的整数使用,但 DATA bar TYPE any
应该保留什么? (这里过于简单化了,但我希望能够理解这一点。)
您只能在参数、引用和字段符号中使用泛型类型,以确保传递或引用某种数据对象。您可以让字段符号 TYPE STANDARD TABLE
指向任何标准 table,但您必须通过其他方式提供该标准 table。而且您必须确保实际的具体类型是 suitable 以满足您的需要,即。 e.兼容您希望附加到 table.
的任何内容
DATA ls TYPE string.
DATA lr_ref TYPE REF TO data.
FIELD-SYMBOLS <'l_s> TYPE any.
FIELD-SYMBOLS <'l_t> TYPE STANDARD TABLE.
ls = 'test'.
GET REFERENCE OF ls INTO lr_ref.
ASSIGN lr_ref->* TO <'l_s>.
现在我应该如何将 <'l_s>
附加到 <'l_t>
?
您需要创建数据 like
<l_s>
的标准 table,然后将其分配给 <l_t>
。
create data lr_ref like standard table of <l_s>.
assign lr_ref->* to <l_t>.
append <l_s> to <l_t>.
它会起作用的。希望能帮助到你。
似乎对 ANY
.
ANY
、CLIKE
等泛型和abstract类有些相似,不能实例化。你不能声明一个 ANY
类型的实际变量,当你这样想时,这是非常明智的: DATA foo TYPE i
在内存中的某个地方保留一个四字节的 space 供你的整数使用,但 DATA bar TYPE any
应该保留什么? (这里过于简单化了,但我希望能够理解这一点。)
您只能在参数、引用和字段符号中使用泛型类型,以确保传递或引用某种数据对象。您可以让字段符号 TYPE STANDARD TABLE
指向任何标准 table,但您必须通过其他方式提供该标准 table。而且您必须确保实际的具体类型是 suitable 以满足您的需要,即。 e.兼容您希望附加到 table.