我在从子字符串生成F#中的文件引用时遇到问题。
我有一个输入文件,我想通过截断输入文件名来创建一个唯一可识别的输出文件。
我的代码如下: -
let sillyString = @"BookingsAberdeen.csv";;
let cutString = sillyString.Substring(8);;
let outputFile = "@" + cutString;;
outputFile;;
但事实并非如此。我得到了“@ Aberdeen.csv”,但我需要它成为@“Aberdeen.csv”。
有人可以建议用于outputFile的正确代码吗?
非常感谢,
西蒙
编辑:从代码中删除了不必要的测试行。
答案 0 :(得分:2)
@
是逐字字符串修饰符。
如果以@符号开头,则文字是逐字字符串。这个 表示忽略任何转义序列,但两个引号除外 标记字符被解释为一个引号字符。 msdn
它阻止F#解释例如"c:\test.txt"
为"c:[TAB]est.txt"
。一旦正确解释了字符串,您就不必担心@ -ing它 - 只需从第四行删除"@" +
。
答案 1 :(得分:1)
你应该逃避初始报价和收盘报价:
let outputFile = "@\"" + sillyString + "\"";