阅读(3486)
赞(10)
字符串字面量和类型
2022-05-11 14:44:51 更新
字符串文字用双引号或单引号("foo"or 'bar')编写,它们也可以分成多个连续的部分(相当于),这在处理长字符串时很有帮助。它们并不意味着 C 中的尾随零;代表三个字节,而不是四个。与整数文字一样,它们的类型可能会有所不同,但它们可以隐式转换为, ..., ,如果它们适合,则可以转换为和。"foo" "bar""foobar""foo"bytes1bytes32bytesstring
例如,字符串文字在分配给类型时以其原始字节形式解释。bytes32 samevar = "stringliteral"bytes32
字符串文字只能包含可打印的 ASCII 字符,即 0x20 .. 0x7E 之间的字符。
此外,字符串文字还支持以下转义字符:
- \<newline>(转义一个实际的换行符)
- \\(反斜杠)
- \'(单引号)
- \"(双引号)
- \n(新队)
- \r(回车)
- \t(标签)
- \xNN(十六进制转义,见下文)
- \uNNNN(unicode转义,见下文)
\xNN采用十六进制值并插入适当的字节,同时\uNNNN采用 Unicode 代码点并插入 UTF-8 序列。
笔记
在 0.8.0 版本之前,还有三个额外的转义序列\b:\f和\v. 它们通常以其他语言提供,但在实践中很少需要。如果您确实需要它们,它们仍然可以像任何其他 ASCII 字符一样分别通过十六进制转义符插入,\x08即\x0c 和。\x0b
以下示例中的字符串长度为 10 个字节。它以换行字节开头,后跟双引号,单引号和反斜杠字符,然后(不带分隔符)字符序列abcdef。
"\n\"\'\\abc\ def"
任何不是换行符的 Unicode 行终止符(即 LF、VF、FF、CR、NEL、LS、PS)都被视为终止字符串文字。换行符仅在字符串文字前面没有 . 时才终止\。