0

我在 F# 中从子字符串生成文件引用时遇到问题。

我有一个输入文件,我想从输入文件名的截断创建一个唯一可识别的输出文件。

我的代码如下: -

    let sillyString = @"BookingsAberdeen.csv";;


    let cutString = sillyString.Substring(8);;

    let outputFile = "@" + cutString;;

    outputFile;;

但结果并不完全正确。我得到“@Aberdeen.csv”,但我需要它是@“Aberdeen.csv”。

任何人都可以建议用于 outputFile 的正确代码吗?

非常感谢,

西蒙

编辑:从代码中删除了不必要的测试行。

4

2 回答 2

2

@是逐字字符串修饰符。

如果前面有 @ 符号,则文字是逐字字符串。这意味着任何转义序列都将被忽略,除了两个引号字符被解释为一个引号字符。微软

它阻止 F# 将例如解释"c:\test.txt""c:[TAB]est.txt". 正确解释字符串后,您无需担心 @-ing 它 - 只需"@" +从第四行中删除即可。

于 2012-10-17T10:56:01.547 回答
1

您应该转义初始引号和结束引号:

let outputFile = "@\"" + sillyString + "\"";
于 2012-10-17T10:54:49.473 回答