为什么回车字符不会出现在像此
这样的F#字符串文字中let hw = @"hello
world";;
而在C#中,以下字符串确实包含回车符?
var s2 = @"hello
world";
由于
答案 0 :(得分:1)
我从fsi运行你的代码并进入换行符。
let hw = @"hello
world";;
printf "%s" hw;;
输出
hello
world
答案 1 :(得分:1)
事实上,很容易发现F#和C#编译器的行为没有区别:通过FSC运行以下
[<EntryPoint>]
let main argv =
let s = @"Hello
world"
printfn "%i" s.Length
0
输出12
类似于等效的C#代码。
FSI
处理多行字符串文字的不同之处在于:将上述代码段的第3-5行从VS发送到带有Alt+Enter
的FSI,产生输出{{1} },在解析后的字符串文字中缺少11
。
这是一个known problem,虽然我没有设法谷歌这种行为背后的理由。