对于 Unicode 字符类别,请参见http://www.fileformat.info/info/unicode/category/index.htm
Haskell 实现了类型“GeneralCategory”和一个函数来确定一个字符的“GeneralCategory”。
他们的实现是这样的:
我建议编写一个 Python 脚本,它执行类似的操作。
在 Rust 中拥有这样的类型和函数使我们能够在“char”模块中正确实现函数。 见http://haskell.org/ghc/docs/6.12.2/html/libraries/base-4.2.0.1/src/Data-Char.html
在 libstd 中名为 'unicode::' 的正在进行中的模块是我要勾画出 libicu 接口的地方。 对于大多数字符类来说,这个决定实际上并不是很简单,ICU 处理得很好。 我想我们可以在 core::char 下公开它,如果每个人都喜欢依赖 libicu 吗?
libicu 提供了许多额外的理想特性,并且它可能存在于大多数计算机上(Python 使用它,所以对我们来说应该没问题)。
我们是想提供公共 libicu 绑定还是只在“char”、“str”等模块内部使用它?
我倾向于后者。
要使用 libicu 正确实现 Rust 的“char”中的函数,我认为我们只需要调用“u_isspace()”、“u_isdigit()”、“u_forDigit()”等函数(http://icu-project.org/ apiref/icu4c/uchar_8h.html)。
我们还不需要完整的 libicu 绑定(包括许多常量定义)。
我认为我们应该走 libicu 路线。 见#1370
我们可以重新打开这个吗? 我们不再依赖 libicu,但仍然没有简单的方法来找到角色的类别。
很抱歉评论这么老的线程,我实际上只是在这里实现了大部分 UCD (v9.0.0)。 它不依赖于 libicu,也不依赖于标准库,因此希望它应该易于在项目中使用(尽管它可能不如 ICU 可靠)。
最有用的评论
很抱歉评论这么老的线程,我实际上只是在这里实现了大部分 UCD (v9.0.0)。 它不依赖于 libicu,也不依赖于标准库,因此希望它应该易于在项目中使用(尽管它可能不如 ICU 可靠)。