abap中String类型的缺点是什么?什么时候用,什么时候不用?
一个例子:我有一个文本字段应该保存从 0 到 12 个字符的值,最好使用字符串或 Char(12)?
谢谢!
字符串存储为动态字符数组,而 char 是静态分配的。
字符串的一些缺点包括:
因此,要回答您的问题,字符串应该只用于长度范围很广的相当长的值,其中额外的开销相对于静态char(x)
变量的潜在浪费空间可以忽略不计。
我认为 CHAR 是最好的,因为您 100% 确定该字段只能包含 0-12 个字符。
string 是可变长度数据类型,而在 char 中,您必须为类型 C(Text field (alphanumeric characters)) 定义长度 .. 并且 String X 或十六进制字符串具有初始值 (X'0 … 0') 。避免初始值,并使用实际长度 C 类型使用
字符串变量: 字符串是一种可变长度数据类型,用于存储任意长度的数据。使用可变长度字段是因为它们节省空间。字符串,可以存储任意数量的字符。字符串会在运行时分配内存,也称为动态内存分配,会根据字符串的大小来分配内存。字符串不能使用参数声明,因为分配的内存是动态的。
但是在您的情况下,您已经知道字段的最大长度(0 - 12 个字符),因此CHAR type
最适合您的情况。一种STRING
类型,通常用于可变长度数据或长值。
字符串在以下情况下很好:
CHAR 字段很好:
要记住的事情:
'test'
CHAR 和`test`
STRING。这通常会稍微快一些。