如何在F#中编写内联大字符串

14

在C#中我可以使用:

string myBigString = @"

<someXmlForInstance>
  <someChild />
</someXmlForInstance>

";

如何在 F# 中实现这个功能?

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>"""

2
如果在@符号之前,该文字是一个逐字字符串。这意味着任何转义序列都将被忽略,除了两个引号字符被解释为一个引号字符。
来源:Strings (F#)

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接