错误FS0001:预期有类型字符串,但类型为char

时间:2015-03-05 10:25:00

标签: f#

我是编程新手,这是我第一次使用.NET语言,所以如果这个问题听起来很愚蠢/琐碎,我会提前道歉。

以下是我的代码的相关摘要:

let isInteger (element: string) =
    let success, result = Int32.TryParse(element)
    if success then Some(result)
    else None
let removeUnnecessaryInfo (someString: string) =
    if isInteger someString.[-1] <> None then
        someString.Remove(-2, 2)
    else 
        someString.Remove(-1, 1)

但是,当我尝试在F#Interactive中运行它时,我收到以下消息:

  

&#34; DuplicateFileFinder.fsx(15,22):错误FS0001:此表达式应具有类型      串
  但这里有类型      char

I.e。,&#34; someString。[ - 1]&#34;被归类为具有char类型,这就是为什么isInteger someString。[ - 1]失败。

请提供一些有关我可以使代码生效的更改的提示。提前谢谢!

1 个答案:

答案 0 :(得分:0)

单行方式将if更改为

 if isInteger (someString.[-1] |> string) <> None then