14

在 C# 中,我可以使用:

string myBigString = @"

<someXmlForInstance>
  <someChild />
</someXmlForInstance>

";

如何在 F# 中执行此操作?

4

3 回答 3

16

在 F# 3.0 VS 2012 中,添加了对三引号字符串的支持。

在三引号字符串中,三引号 ("""...""") 之间的所有内容都保持逐字记录;根本没有逃避。因此,如果我想将一些 XAML 作为字符串文字,这很容易:

let xaml = """ 
<StackPanel xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
            Name="mainPanel"> 
  <Border BorderThickness="15.0" BorderBrush="Black"> 
    <StackPanel Name="stackPanel1"> 
      <TextBlock Text="Super BreakAway!" FontSize="24" HorizontalAlignment="Center" /> 
      <TextBlock Text="written in F#, by Brian McNamara - press 'p' to pause" 
                 FontSize="12" HorizontalAlignment="Center" /> 
      <Border BorderThickness="2.0" BorderBrush="Black"> 
        <Canvas Name="canvas" Background="White" /> 
      </Border> 
    </StackPanel> 
  </Border> 
</StackPanel>"""
于 2012-08-01T14:13:39.827 回答
1

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

来源:字符串(F#)

于 2012-08-01T10:57:06.637 回答
1

尝试一下:

let str1 = "abc
     def"
let str2 = "abc\
     def"

有关详细信息,请参阅:http: //msdn.microsoft.com/en-us/library/362314fe.aspx

于 2012-08-01T11:01:39.310 回答