美文网首页SAP 修行SAP
ABAP 引用类型介绍

ABAP 引用类型介绍

作者: 华山令狐冲 | 来源:发表于2021-08-19 09:23 被阅读0次

除了之前一篇文章什么是 ABAP Field Symbol介绍的 Field Symbol 以外,引用类型(Reference Type) 是 ABAP 编程语言里另一个很重要的数据类型。

让我们还是通过实际例子来理解。

下面这行简单的代码,定义了一个整型变量 lv1, 值为1.

紧接着,我们将其的值改为 2. 最后打印输出,lv1 的值为2.

除了这种通过赋值符号 = 给变量直接复制的方式之外,我们还可以通过引用变量来间接完成。

下列代码第 14 行,我定义了一个引用类型的变量 lr,类型为 REF TO int4, 意思是,该引用变量,指向另一个类型为 int4 的整型变量。

第16行,我使用 GET REFERENCE OF lv1 INTO lr, 意思是,将程序运行时,将变量 lv1 在内存中的地址赋给引用变量 lr.

这样,我通过 ABAP 提供的某种机制,能实现通过修改引用变量 lr, 也能更改它指向的整型变量 lv1 的值的目的。

整型变量 lv1 和指向它的引用变量 lr 的示意图如下所示。其中整型变量 lv1 包含的红色区域代表其整型值 2,而引用变量 lr 包含的紫色区域的星号,代表其存储的是整型变量 lv1 的地址。

然而,当我们试图将新的整数 3 赋给引用变量 lr 时,会遇到语法错误:

The type of "3" cannot be converted to the type of "LR"

意思是常数 3 的类型,无法转换成引用变量 lr 的类型。

这是意料之中的错误。因为等号左边的变量 lr 类型为引用,而等号右边的操作数为 3,二者类型不一致,无法直接赋值。

为此,我们需要使用 ABAP 提供的一个语法,如下所示:

符号 "->*" 的意思是,告诉 ABAP 处理器,将引用变量指向的实际整型变量(在我这个例子里是 lv1) 存储的值,赋成 3.

这个程序执行之后,lv1 最终的值为 3.

本文剩余内容,请移步这里

相关文章

  • ABAP 引用类型介绍

    除了之前一篇文章什么是 ABAP Field Symbol[https://jerry.blog.csdn.net...

  • 引用类型介绍

    Golang的引用类型包括 slice、map 和 channel。它们有复杂的内部结构,除了申请内存外,还需要初...

  • 【Solidity智能合约系列】04--数据存储位置

    引用类型 之前已经介绍过一些值类型了,本文介绍一下引用类型。引用类型是一个复杂类型,占用的空间通常超过256位,所...

  • ABAP 编程语言里的 Reference Semantic -

    ABAP 编程语言里,对 ABAP 类实例(类对象)或匿名数据对象的多个引用,使用引用语义(Reference S...

  • C++数据类型(三)引用和指针

    复合类型 C++复合类型有多种,这里只介绍其中的两种,引用和指针。 引用 引用:为对象起另外一个名字,引用类型引用...

  • 6-java基础语法

    内容介绍:自定义类ArrayList集合 1 引用数据类型(类) 1.1 引用数据类型分类 提到引用数据类型(类)...

  • Java-100天知识进阶-引用类型-知识铺(二)

    Java的两大数据类型: 一、内置数据类型前面一片已经介绍二、引用数据类型 引用数据类型 强引用file 软引用f...

  • ABAP数据类型定义

    1、ABAP-基本数据类型 2、ABAP-变量声明 根据类型定义变量使用关键字 "DATA" 声明变量:DATA ...

  • 如何实现数组深拷贝和浅拷贝?

    如何实现数组深拷贝和浅拷贝? 1.背景介绍 javascript分原始类型与引用类型。Array是引用类型,直接用...

  • Swift学习

    ---值类型与引用类型 主要介绍什么: 1. 值类型指的是什么呢 什么情景下使用值类型 2引用类型是什么 什么情...

网友评论

    本文标题:ABAP 引用类型介绍

    本文链接:https://www.haomeiwen.com/subject/dyhgultx.html