首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么F#字符串不能以三引号中的双引号结尾?

为什么F#字符串不能以三引号中的双引号结尾?
EN

Stack Overflow用户
提问于 2014-07-05 13:21:31
回答 1查看 1.8K关注 0票数 9

我是一个尝试学习C#的F#开发人员。

据我所知,F# 2.0有两种用于字符串的语法:普通字符串和逐字字符串(就像C#)。在F# 3.0版本中,有一个名为三倍引号字符串的特性。

据我所见,使用这种字符串格式,"""之间的每一件事都是逐字字符串文本。没有必要像双引号那样转义转义序列字符

例如,所有这些都是有效的字符串;

代码语言:javascript
运行
复制
let a = """ This is a valid "string" """
let b = """ This is a valid \string """
let c = """ This is a valid 'string """

但这是有规律的;

三引号字符串中的引号不能以双引号(“)结尾,但可以以1开头。

所以这是一条法律线;

代码语言:javascript
运行
复制
let s = """"This is a valid string"""

但事实并非如此;

代码语言:javascript
运行
复制
let s = """This is a valid string""""

为什么会这样呢?我查看了在MSDN页面上F# 3.0语言规范$3.5字符串和字符部分关于F# 3.0语言特性的更多信息,但是没有找到任何关于为什么在字符串开始时使用它是合法的信息,而不是在最后。

你能指点我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-05 13:56:43

答案很简单:当编译器看到三个引号时,三引号字符串就会结束。因此,"""a""""是字符a的字符串,后面是一个额外的",它启动一个新的字符串。

如果要编写模糊代码,可以执行以下操作:

代码语言:javascript
运行
复制
f"""a""""b"

使用两个字符串f"b"调用函数"a"

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24586857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档