f# - 简单解析命令行参数

标签 f#

我想使用以下代码来限制只有一个参数。但是,我在 first :: NIL 收到以下错误?

Error   1   This expression was expected to have type
    string []    
but here has type
    'a list 
[<EntryPoint>]
let main argv = 

    match argv with 
    | first :: NIL -> 
         .... do something with first
    | _ -> failwith "Must have only one argument."

最佳答案

命令行参数作为数组传递,而不是列表。

如果您只期望一个参数,请执行以下操作:

match argv with 
| [|first|] -> 
     // .... do something with first
| _ -> failwith "Must have only one argument."

关于f# - 简单解析命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20252167/

相关文章:

f# - 我应该强制使用 F# 测量单位的类型吗? [风格与一般性]

f# - 为什么 `unit` 在用作泛型接口(interface)参数时被 F# 类型系统区别对待?

F# 将一个 C# 方法传入另一个需要 Func<> 参数的 C# 方法

f# - 带有分号分隔符和预定义架构的 CsvProvider

c# - 闭包语法错误 F#

f# - 为什么我要返回 Async<unit> 而不是 Async<Result>?

F# 类型提供程序,它们如何工作

dependency-injection - 什么时候使用接口(interface),什么时候使用高阶函数?

f# - 静态方法的类型约束

基于 F# 延续的尾递归