为什么.ord不同意.chars?

Cha*_*ens 7 unicode perl6

我的理解.chars是它返回"字形中字符串中的字符数".我的理解.ords是它返回"一个代码点数列表,一个用于字符串中每个字素的基本字符".也就是说,.chars返回字素数并.ords返回每个字素的一个代码点(基数).但是,我在MoakVM 2016.07上的Rakudo 2016.07.1中看到的行为似乎与以下内容不匹配:

> "\x[2764]\x[fe0e]".chars
1
> "\x[2764]\x[fe0e]".ords.fmt("U+%04x")
U+2764 U+fe0e
> "e\x[301]".ords.fmt("U+%04x")
U+00e9
> "0\x[301]".ords.fmt("U+%04x")
U+0030
Run Code Online (Sandbox Code Playgroud)

.chars方法返回HEAVY BLACK HEART和VARIATION SELECTOR-15的预期1(文本表示❤︎而不是表情符号❤️,U + 2764 U + fe0f),但随后.ords返回两个代码点而不仅仅是基数(我预计只是U) 2764).更令人困惑的,如果你拨打.ords的拉丁小写字母E和组合重音符,你拿回U + 00e9(急性拉丁小写字母E).我期待U + 0065,因为LATIN SMALL LETTER E是基本代码点.当没有NFC版本的字符串时(例如U + 0030表示0),我确实得到了预期的结果.

是我的理解.chars.ords公正有缺陷,或者这是一个错误?

Cok*_*oke 7

有关.ords方法的文档错误.其中一位核心开发人员刚刚使用此提交更新了文档:

https://github.com/perl6/doc/commit/12ec5fc35e

哪个应该很快出现在网站上.