这似乎已被api文档中的Str
模块所涵盖,但根据this issue opened,这是一个疏忽。
答案 0 :(得分: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)
}
不过,我认为将字符串转换为列表通常没有多大意义,因为无论使用哪种方法,转换都将产生大量开销,并且直接迭代字符串会更好。如果确实有意义,则可能是当字符串足够小时,第一种方法和第二种方法之间的差异无关紧要。