首页 > 解决方案 > V:迭代字符串的字符(符文)

问题描述

据我了解,V 中的一个字符串被一个编码为 UTF-8 的字节数组包裹着。这样,遍历所有字符串元素返回字节:

fn main() {
    s := 'a string with äöü (umlauts)'
    println(s)
    for i := 0; i < s.len; i++ {
        print('-')
    }
    println('')
}

导致(注意较长的下划线):

a string with äöü (umlauts)
------------------------------

如何以字符/符文获取字符串的长度?如何迭代所有字符/符文而不是字节?

标签: vlang

解决方案


看起来需要使用该encoding.utf8模块:

import encoding.utf8

fn main() {
    s := 'a string with äöü (umlauts)'
    println(s)
    for i := 0; i < utf8.len(s); i++ {
        print('-')
    }
    println('')
}

推荐阅读