使用 graphemes
相对于 split
从 UTF-8 字符串创建数组的优势是什么?
例如,考虑以下示例:
# Define a UTF-8 string with a bunch of multibyte characters
s = "{(-n↑⍵÷⊃⊖⍵),⍨⍉1↓⍉∘.=⍨⍳n←1-⍨≢⍵}"
# Create an array using split
split(s, "")
# Create an array using graphemes (v0.4+)
collect(graphemes(s))
这两种方法都会产生预期的输出。确实如此,
split(s, "") == collect(graphemes(s))
返回true
。
这两种方法似乎总是产生相等的结果。有没有一种方法通常比另一种更受欢迎,无论是因为性能、风格还是其他原因?
(请注意,graphemes
返回一个迭代器而不是数组,因此需要使用collect
。)