首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ABAP字段符号

ABAP字段符号
EN

Stack Overflow用户
提问于 2014-05-26 17:26:06
回答 3查看 1K关注 0票数 0

有人能简单地给我解释一下字段符号ABAP中发生了什么吗?我很高兴有人能解释一下这个概念,它与继承有什么关系,它是如何提高性能的。

EN

回答 3

Stack Overflow用户

发布于 2014-05-26 17:45:53

字段符号可以说是指针。这意味着,如果您将任何内容赋值给fields symbol,该符号将与变量强耦合(链接),并且对fieldsymbol的任何更改都将立即更改该变量。就性能而言,如果循环遍历内部表,则需要使用它。你可以循环到一个字段符号中,而不是循环到一个结构中。如果对内部表进行了修改,则可以直接修改字段符号。然后,您可以摆脱“修改”指令,该指令用于将结构的更改映射回内部表的相应行。“读取表赋值”也有同样的作用,就像循环到字段符号中一样。比起使用“工作区”(在修改时),更推荐使用Field-Symbol,但引用是现在要去做的事情。它们的工作方式几乎与字段符号相似。我能为你澄清一下吗?

票数 5
EN

Stack Overflow用户

发布于 2016-04-07 23:50:33

字段- ABAP中的符号在C++中用作指针。它有很多好处:

字段符号不创建字段可以创建任何类型的字段- extra-variables.

  • You,因此可以指向任何变量/表类型的内存space.

  • ...

我希望这几行能对你有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2020-05-04 07:46:42

当涉及到编码时,让我们来看看它。此外,我还想加入数据引用。

代码语言:javascript
复制
* 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方法密切相关。我必须承认,当涉及到性能时,字段符号略微领先。

在讨论修改时,最后两个应该是首选的。第一个示例有一个额外的数据拷贝,这会降低整体性能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23866895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档