0
如何在FP方式的字符串中的指定位置获取字符(即没有肮脏的.[index]
黑客)?在字符串中的指定位置获取字符
如果我使用Seq.item
它将迭代所有索引,直到n
元素,所以使该函数每次运行非常慢。
在下面的示例中,如果source
是string
,那么将访问O(1)
,否则将访问O(n)
。
let getItem index source =
match box source with
| :? string as string -> printfn "String"; string.[index]
| _ -> printfn "Seq<char>"; Seq.item index source
let stringChar3 = getItem 3 "ABCD"
let seqChar3 = getItem 3 [ for c in ['A'..'D'] do yield c ]
val getItem : index:int -> source:seq<char> -> char
val stringChar3 : char = 'D'
val seqChar3 : char = 'D'
如何使用'。[index]'“肮脏的黑客”?这是获得O(1)访问权限的方式。 – Lee
@Lee因为然后我需要添加明确的类型注释的功能,我暂时不能。 – MiP