gpt4 book ai didi

go - 检查是否分配了 Unicode 代码点

转载 作者:IT王子 更新时间:2023-10-29 01:41:03 28 4
gpt4 key购买 nike

Go 有 unicode 包,包含有用的函数,例如 IsGraphicIsPrint。不过缺少的一个函数是 IsAssigned。当然,我可以使用其他函数编写自己的函数。但我更希望标准库提供这个功能。在 Java 中,编写此函数很容易:

boolean isAssigned(int codePoint) {
return Character.getType(codePoint) != Character.UNASSIGNED;
}

在 Go 中没有函数 unicode.Type(rune)unicode.IsAssigned(rune)。我能找到的最接近的是:

func IsAssigned(r rune) bool {
return unicode.IsControl(r) ||
unicode.IsGraphic(r) ||
unicode.IsSymbol(r)
}

但该代码认为 U+00AD(软连字符)未分配,这是错误的。

如何获得有关未分配代码点的正确信息?

最佳答案

我认为您可以使用 unicode.Is 验证代码点是否已分配unicode.Categories(虽然效率不高),即

func IsAssigned(r rune) bool {
for _, v := range unicode.Categories {
if unicode.Is(v, r) {
return true
}
}
return false
}

工作示例在 The Go Playground 中.

关于go - 检查是否分配了 Unicode 代码点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49763103/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com