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

时间:2012-08-01 10:52:20

标签: .net string f# literals

在C#中我可以使用:

string myBigString = @"

<someXmlForInstance>
  <someChild />
</someXmlForInstance>

";

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

3 个答案:

答案 0 :(得分:14)

在F#3.0,VS 2012中,为triple-quoted strings添加了支持。

  

在三引号字符串中,三引号之间的所有内容(“”“......”“”)   是逐字记录的;根本没有逃脱。结果,如果我想   有一点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>"""

答案 1 :(得分:1)

  

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

     

来源:Strings (F#)

答案 2 :(得分:1)

尝试:

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

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