abap 中字符串类型与 char 类型

发布于 2024-09-25 20:51:04 字数 114 浏览 4 评论 0原文

abap中String类型有什么缺点?什么时候使用它,什么时候不使用它?

一个例子:我有一个文本字段,应该保存 0 到 12 个字符的值,最好使用字符串或 Char(12)?

谢谢!

What are the drawbacks of the String type in abap? When to use it, when not?

An example : I have a text field that should save values ranging from 0 to 12 chars, better to use a string or a Char(12)?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

成熟稳重的好男人 2024-10-02 20:51:04

字符串存储为动态字符数组,而字符则静态分配。

字符串的一些缺点包括:

  • 开销 - 因为它们是动态的,所以除了实际字符串之外还必须存储长度。
  • 子字符串和偏移运算符不适用于字符串。
  • 字符串无法转换为可翻译的文本元素。

因此,为了回答您的问题,字符串只能用于长度范围很广的相当长的值,其中相对于静态 char(x) 变量的潜在浪费空间,额外的开销可以忽略不计。

A string is stored as a dynamic array of characters while a char is statically allocated.

Some of the downsides of strings include:

  • Overhead - because they are dynamic the length must be stored in addition to the actual string.
  • The substring and offset operators don't work with strings.
  • Strings cannot be turned into translatable text elements.

So to answer your question, strings should only be used for fairly long values with a wide range of lengths where the additional overhead is negligible relative to the potential wasted space of a static char(x) variable.

鲸落 2024-10-02 20:51:04

我认为 CHAR 是最好的,因为您可以 100% 确定该字段只能包含 0-12 个字符。

I think CHAR is the best because you are 100% sure that the field has to only hold 0-12 characters.

清秋悲枫 2024-10-02 20:51:04

string是可变长度的数据类型,而在char中你必须定义长度..
对于类型 C(文本字段(字母数字字符))和字符串 X 或十六进制字符串具有初始值 (X'0 … 0') 。
为了避免初始值,并使用实际长度,使用 C 类型

string is the variable length Data type , while in char you have to define the length ..
for type C(Text field (alphanumeric characters)) and String X or hexadecimal string have initial value (X'0 … 0') .
to avoid initial value , and to use actual length C type is used

只有影子陪我不离不弃 2024-10-02 20:51:04

字符串适合以下情况:

  • 文本长度可变。
  • 空格是字符串的一部分(CHAR 字段中的尾随空格会丢失)
  • 您经常传递它们(当 STRING 变量元数据小于 char 字段大小时)
  • 您需要经常获取 STRING 长度。它比 CHAR 字段更优化。

CHAR 字段很好:

  • 如果它们很小,则速度很快(在 unicode 系统上少于大约 32 个字符)
  • 使用 (') 引号而不是 (`) 的 CHAR 字段文字可以制作成可翻译的文本。

需要记住的事情:

  • 所有变量都有元数据,但字符串也有一些指向字符串数据的内部指针,这可能会增加多达 64 个字节的内存消耗。需要记住的事情。
  • 将文字文本分配给变量时,请尝试将文字类型与变量类型相匹配。对 CHAR 使用 'test',对 STRING 使用 `test`。这通常会稍微快一些。

Strings are good when:

  • The text length will be variable.
  • Spaces are part of the string (trailing spaces in CHAR fields are lost)
  • You pass them around a lot (when STRING variable metadata is less than char field size)
  • You need to get the STRING length often. It is more optimal than with CHAR fields.

CHAR fields are good:

  • If they are small, they are fast (less than around 32 chars on unicode systems)
  • CHAR field literals using (') quotes instead of (`) can be made into translatable texts.

Things to remember:

  • All variables have metadata, but strings also has some internal pointer to the string data, which could add up to 64 bytes to memory consumption. Something to keep in mind.
  • When assigning a literal text to a variable, try to match the literal type to the variable type. Use 'test' for CHAR and `test` for STRING. This is usually slightly faster.
凉墨 2024-10-02 20:51:04

字符串变量:
字符串是一种可变长度数据类型,用于存储任意长度的数据。使用可变长度字段是因为它们节省空间。
字符串,可以存储任意数量的字符。 String会在运行时分配内存,也称为动态内存分配,会根据字符串的大小分配内存。字符串不能使用参数声明,因为分配的内存是动态的。

但在您的情况下,您已经知道字段的最大长度(0 - 12 个字符),因此 CHAR 类型 最适合您的情况。 STRING 类型通常用于可变长度数据或长值。

了解更多

String Variable :
A String is a variable length data type which is used to store any length of data. Variable length fields are used because they save space.
String, can store any number of characters. String will allocate the memory at runtime which is also called as dynamic memory allocation, will allocate the memory as per the size of the string. Strings cannot be declared using parameters as the memory of allocation is dynamic.

But in your case, you already know max-length of field(0 - 12 characters), So CHAR type is best for use in your case. A STRING type generally used to variable length data or a long values.

Read more

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文