有人能简单地给我解释一下字段符号ABAP中发生了什么吗?我很高兴有人能解释一下这个概念,它与继承有什么关系,它是如何提高性能的。
发布于 2014-05-26 17:45:53
字段符号可以说是指针。这意味着,如果您将任何内容赋值给fields symbol,该符号将与变量强耦合(链接),并且对fieldsymbol的任何更改都将立即更改该变量。就性能而言,如果循环遍历内部表,则需要使用它。你可以循环到一个字段符号中,而不是循环到一个结构中。如果对内部表进行了修改,则可以直接修改字段符号。然后,您可以摆脱“修改”指令,该指令用于将结构的更改映射回内部表的相应行。“读取表赋值”也有同样的作用,就像循环到字段符号中一样。比起使用“工作区”(在修改时),更推荐使用Field-Symbol,但引用是现在要去做的事情。它们的工作方式几乎与字段符号相似。我能为你澄清一下吗?
发布于 2016-04-07 23:50:33
字段- ABAP中的符号在C++中用作指针。它有很多好处:
字段符号不创建字段可以创建任何类型的字段- extra-variables.
我希望这几行能对你有所帮助。
发布于 2020-05-04 07:46:42
当涉及到编码时,让我们来看看它。此外,我还想加入数据引用。
* The 'classic' way. Not recommended though.
LOOP AT lt_data INTO DATA(ls_data).
ls_data-value += 10.
MODIFY TABLE lt_data FROM ls_data.
ENDLOOP.
* Field symbols
LOOP AT lt_data ASSIGNING FIELD-SYMBOL(<fs_data>).
<fs_data>-value += 10.
ENDLOOP.
* Data references
LOOP AT lt_data REFERENCE INTO DATA(lr_data).
lr_data->value += 10.
ENDLOOP.我个人更喜欢数据引用,因为它们与OO方法密切相关。我必须承认,当涉及到性能时,字段符号略微领先。
在讨论修改时,最后两个应该是首选的。第一个示例有一个额外的数据拷贝,这会降低整体性能。
https://stackoverflow.com/questions/23866895
复制相似问题