Go 中是否有等同于 wcwidth() 函数的函数?
Is there an equivalent to the wcwidth() function in Go?
POSIX 函数 wcwidth()
计算给定 wchar_t
在终端上打印时的宽度。例如,wcwidth(L'A')
returns 1
, wcwidth(L'字')
returns 2
, 等等。还有一个函数wcswidth()
计算整个字符串的宽度 - 如果存在组合重音,这很有用。
Go标准库或补充库中是否有类似的功能?如果不是,有没有一种简单的方法可以使东西足够相似?
Does a similar function exist in the Go standard library or the supplementary libraries?
我认为最流行的库是 go-runewidth。
示例:
package main
import (
"github.com/mattn/go-runewidth"
)
func main() {
println(runewidth.StringWidth("A")) // prints 1
println(runewidth.StringWidth("字")) // prints 2
}
POSIX 函数 wcwidth()
计算给定 wchar_t
在终端上打印时的宽度。例如,wcwidth(L'A')
returns 1
, wcwidth(L'字')
returns 2
, 等等。还有一个函数wcswidth()
计算整个字符串的宽度 - 如果存在组合重音,这很有用。
Go标准库或补充库中是否有类似的功能?如果不是,有没有一种简单的方法可以使东西足够相似?
Does a similar function exist in the Go standard library or the supplementary libraries?
我认为最流行的库是 go-runewidth。
示例:
package main
import (
"github.com/mattn/go-runewidth"
)
func main() {
println(runewidth.StringWidth("A")) // prints 1
println(runewidth.StringWidth("字")) // prints 2
}