我是编程新手,这是我第一次使用.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]失败。
请提供一些有关我可以使代码生效的更改的提示。提前谢谢!
答案 0 :(得分:0)
单行方式将if
更改为
if isInteger (someString.[-1] |> string) <> None then