在使用mono的Linux上使用atom编辑器时,我很难在sprintf语句中转义'\'。
在带VS的Windows上:
sprintf "%s" "\\"
评估为
val it : string = "\"
应该如此。
如果我在Linux下用VSCode或atom-editor评估相同的表达式,我得
val it : string = "\\"
进一步备注: 如果在Windows上(我在Windows上安装Mono来检查它)我从'Mono命令提示符'启动'fsharpi',所述表达式被正确评估为“\”。就像我在Linux下做同样的事情一样。
答案 0 :(得分:2)
这看起来更像是编辑器显示问题,而不是评估本身的错误。公平地说,这总是让我感到困惑 - 如果编辑器显示字符串值,还是应该将其显示为有效的转义F#字符串?我认为两者都有意义......
检查您真正获得的价值的最简单方法是在F#Interactive中运行一些检查:
select *
from @temp
order by case when Role = 3 then 0 else 1 end, Role, Name