比较时右侧的空格无关紧要

Whitespaces on the right side dont matter when comparing


DEFINE VARIABLE a AS CHARACTER NO-UNDO.
DEFINE VARIABLE b AS CHARACTER NO-UNDO.
a = "123".
b = "123 ".

MESSAGE a = b
VIEW-AS ALERT-BOX.

MESSAGE LENGTH(a) = LENGTH(b)
VIEW-AS ALERT-BOX.

有谁知道,为什么第一个等于 returns 真? 右侧的空格是否被忽略?因为左边的空格会导致等于为假。右边有多少个空格也无关紧要。

谢谢大家

嗯,这就是 ABL 的实施方式。

您可以使用比较功能。

MESSAGE a = b SKIP 
        COMPARE (a, "EQ", b, "RAW")
VIEW-AS ALERT-BOX.

https://documentation.progress.com/output/ua/OpenEdge_latest/index.html#page/dvref/eq-or-=-operator.html

The equal comparison ignores trailing blanks. Thus, "abc" is equal to "abc ". However, leading and embedded blanks are treated as characters and " abc" is not equal to "abc".