gpt4 book ai didi

string - 为什么 F# 字符串不能在三引号中以双引号结尾?

转载 作者:行者123 更新时间:2023-12-04 18:41:43 24 4
gpt4 key购买 nike

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

据我所知,F# 2.0 有两种字符串语法:普通字符串和逐字字符串( like C# )。在 F# 3.0 版本中,有一项称为三重引号字符串的功能。

据我所知,使用这种字符串格式,""" 之间的所有内容|是逐字字符串文字。而且没有必要逃跑escapse sequence characters像双引号。

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

let a = """ This is a valid "string" """
let b = """ This is a valid \string """
let c = """ This is a valid 'string """

但它有一个规则;

Quotes in the triple-quoted string cannot end with a double-quote (“), but it can begin with one.



所以这是一个合法的字符串;
let s = """"This is a valid string"""

但这不是;
let s = """This is a valid string""""

这是为什么?我看了 Strings (F#) on MSDN page , F# 3.0 Language Spec $3.5 Strings and Characters partMore About F# 3.0 Language Features但我找不到任何关于为什么在字符串的开头而不是结尾使用是合法的信息。

你能启发我吗?

最佳答案

答案很简单:只要编译器看到三个引号,三引号字符串就结束了。所以"""a""""是由字符 a 组成的字符串,后跟一个额外的 " , 开始一个新的字符串。

如果您想编写混淆代码,您可以执行以下操作:

f"""a""""b"

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

关于string - 为什么 F# 字符串不能在三引号中以双引号结尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24586857/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com