3

这似乎被Strapi 文档中的模块所涵盖,但根据打开的这个问题,这是一个疏忽。

4

1 回答 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)
}

不过,我认为将字符串转换为列表通常没有多大意义,因为无论方法如何,转换都会产生很大的开销,并且最好直接迭代字符串。如果它确实有意义,那么可能是当字符串足够小时,第一种和第二种方法之间的差异并不重要。

于 2018-09-30T11:36:16.857 回答