将字符串分割成字符列表的最简单方法是什么?

3
这似乎在API文档中由Str模块涵盖,但根据此问题的反馈,这是个疏忽。
1个回答

3

这可能是最简单的方法,但肯定不是最有效的:

let split = s =>
    s |> Js.String.split("")
      |> Array.to_list
      |> List.map(s => s.[0])

这样更有效率,而且跨平台:
let split = s => {
    let rec aux = (acc, i) =>
        if (i >= 0) {
          aux([s.[i], ...acc], i - 1)
        } else {
          acc
        }

    aux([], String.length(s) - 1)
}

我认为将字符串转换为列表通常没有太多意义,因为无论使用哪种方法,转换都会有显着的开销,并且直接迭代字符串可能更好。如果确实有意义,那么可能是当字符串足够小以至于第一种和第二种方法之间的差异很小的时候。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接