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