Nul*_*lle 2 f# operators parameter-passing
在F#中,您可以通过|>运算符将字符串传递给int,如下所示:
"54" |> int
Run Code Online (Sandbox Code Playgroud)
我想知道是否有办法为列表这样做:
"[4;2;3]" |> list
Run Code Online (Sandbox Code Playgroud)
当尝试为列表执行此操作时,错误的是未定义值或构造函数.
也许这根本不可能?
int 是一个可以将字符串(和其他东西)转换为int的函数.
没有内置函数调用list.要创建列表,您可以使用列表文字语法:[4;2;3]
如果你需要解析一个字符串"[4;2;3]",int list那么你就是自己.你需要编写代码才能做到这一点.例如:
let parseIntList (str:string) =
let trimmed = str.Trim()
if not (trimmed.StartsWith "[" && trimmed.EndsWith "]") then failwith "Not a list"
trimmed.[1 .. trimmed.Length - 2].Split ';'
|> Array.map int
|> Array.toList
Run Code Online (Sandbox Code Playgroud)
此功能适用于您的示例,但对于其他有效输入可能会失败.