fsharp中的回车字符

时间:2014-01-26 19:14:21

标签: f#

为什么回车字符不会出现在像此

这样的F#字符串文字中
let hw = @"hello 
world";;

而在C#中,以下字符串确实包含回车符?

var s2 = @"hello
world";

由于

2 个答案:

答案 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,虽然我没有设法谷歌这种行为背后的理由。