1 个稳定版本
1.0.0 | 2022年4月1日 |
---|
#1874 in Rust 模式
5KB
60 行
U+:漂亮的 Unicode 代码点字面量
我出于某种原因在阅读 https://uncyclopedia.com/wiki/Rust_(programming_language),并读到了 let U = 0; U = U + 1;
。
突然我的脑海中涌出一个概念。我立刻将其实现。
问题
Unicode 使用 U+1234(U+0000–U+10FFFF 的完整范围)这样的语法来表示其代码点。
但是当你想将其转换为编程语言时,你不得不学习另一种语法。这将是 \u1234
,\u{1234}
,\x1E\x88\xB4
,\341\210\264 之类的东西吗?
然后还有天界字符,使情况变得更糟:\U0001F631
,\u{1F631}
,\xF0\x9F\x98\xB1
,\uD83D\uDE31
(以及 UTF-16 所带来的所有相关痛苦,特别是你的 char 类型可能根本无法表示这一点),其他的东西吗?
因此,这里有一个让你们可以使用真正的 Unicode 语法的 crate
use u_plus::U;
assert_eq!(U+1234, '\u{1234}');
所以忘掉 \u{…}
语法吧!
(注意:这种方法有一些限制,有关详细信息,请参阅 KNOWN_ISSUES.md。)
“对我来说,所有的事情都是合法的,”但并不是所有的事情都是有利的。“对我来说,所有的事情都是合法的,”但并不是所有的事情都是有益的。
—— 圣保罗,《哥林多前书》第10章第23节