ben*_*ruk 14
F#3.0支持三引号字符串.请参阅Visual Studio F#Team Blog Post 3.0功能.
在F#3.0规格 字符串和字符节专门提到了XML的场景:
通过使用三个引号(""")指定三引号字符串,以确保逐字解释包含一个或多个转义字符串的字符串.例如,可以使用三引号字符串来嵌入XML blob:
Tom*_*cek 10
据我所知,C#/ F#中没有与此对应的语法.如果你使用@"str"那么你必须用两个引号替换引号,如果你只是使用"str"那么你需要添加反斜杠.
在任何情况下,都有一些编码":
var str = @"allows
multiline, but still need to encode "" as two chars";
var str = "need to use backslahs \" here";
Run Code Online (Sandbox Code Playgroud)
但是,当您需要将大型字符串(例如XML数据)嵌入到应用程序中时,最好的做法可能是使用.NET资源(或将数据存储在其他位置,具体取决于您的应用程序).通常不建议在程序中嵌入大型字符串文字.此外,曾经有一个插件用于粘贴XML作为构建XElementC#对象的树,但我不确定它是否仍然存在.
虽然,我个人会投票"""通过Python将其添加到F#中 - 它非常有用,特别是对于交互式脚本.
如果有人在 C#(而不是 F#)中查找三引号字符串时遇到这个问题,C#11 现在具有原始字符串文字,并且它们(IMO)比 Python 更好(由于缩进的处理方式)!
原始字符串文字是字符串文字的一种新格式。原始字符串文字可以包含任意文本,包括空格、换行符、嵌入引号和其他特殊字符,而无需转义序列。原始字符串文字至少以三个双引号 (""") 字符开头。它以相同数量的双引号字符结尾。通常,原始字符串文字在单行上使用三个双引号来启动字符串,三个双引号单独一行来结束字符串。开始引号后面和结束引号之前的换行符不包含在最终内容中:
Run Code Online (Sandbox Code Playgroud)string longMessage = """ This is a long message. It has several lines. Some are indented more than others. Some should start at the first column. Some have "quoted text" in them. """;结束双引号左侧的任何空格都将从字符串文字中删除。原始字符串文字可以与字符串插值结合使用,以在输出文本中包含大括号。多个
$字符表示有多少个连续的大括号开始和结束插值:Run Code Online (Sandbox Code Playgroud)var location = $$""" You are at {{{Longitude}}, {{Latitude}}} """;前面的示例指定两个大括号开始和结束插值。第三个重复的左大括号和右大括号包含在输出字符串中。
https://devblogs.microsoft.com/dotnet/csharp-11-preview-updates/#raw-string-literals https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/csharp- 11#原始字符串文字
| 归档时间: |
|
| 查看次数: |
4471 次 |
| 最近记录: |