我有以下F#代码:
//Array iter version
let toSecureString (s:string) =
let sString = new SecureString()
s |> Array.iter (fun cl -> sString.AppendChar cl)
sString
Run Code Online (Sandbox Code Playgroud)
我正在尝试将.Net字符串转换为.Net SecureString.当我尝试编译时,我收到类型不匹配错误:
stdin(60,10): error FS0001: Type mismatch. Expecting a
string -> 'a
but given a
'b [] -> unit
The type 'string' does not match the type ''a []'
Run Code Online (Sandbox Code Playgroud)
如果我没有指定s的类型,这是我看到的类型签名:
val toSecureString : char [] -> SecureString
Run Code Online (Sandbox Code Playgroud)
但是因为我不想每次都为参数手动创建一个字符数组,所以似乎我错过了一些东西.如何使用传入的字符串参数使此代码工作?
如果它有所作为我正在测试F#2.0(Build 4.0.40219.1).
任何提示欢迎.如果已经询问并回答了这个问题,请在评论中发布一个链接,我将关闭此问题.
要将字符串作为a操作char seq,可以使用String模块.这有效:
let toSecureString s =
let sString = new SecureString()
String.iter sString.AppendChar s
sString
Run Code Online (Sandbox Code Playgroud)