字符串字面量和類型

2022-05-11 18:06 更新

字符串文字用雙引號(hào)或單引號(hào)("foo"or 'bar')編寫,它們也可以分成多個(gè)連續(xù)的部分(相當(dāng)于),這在處理長(zhǎng)字符串時(shí)很有幫助。它們并不意味著 C 中的尾隨零;代表三個(gè)字節(jié),而不是四個(gè)。與整數(shù)文字一樣,它們的類型可能會(huì)有所不同,但它們可以隱式轉(zhuǎn)換為, ..., ,如果它們適合,則可以轉(zhuǎn)換為和。"foo" "bar""foobar""foo"bytes1bytes32bytesstring

例如,字符串文字在分配給類型時(shí)以其原始字節(jié)形式解釋。bytes32 samevar = "stringliteral"bytes32

字符串文字只能包含可打印的 ASCII 字符,即 0x20 .. 0x7E 之間的字符。

此外,字符串文字還支持以下轉(zhuǎn)義字符:

  • \<newline>(轉(zhuǎn)義一個(gè)實(shí)際的換行符)
  • \\(反斜杠)
  • \'(單引號(hào))
  • \"(雙引號(hào))
  • \n(新隊(duì))
  • \r(回車)
  • \t(標(biāo)簽)
  • \xNN(十六進(jìn)制轉(zhuǎn)義,見下文)
  • \uNNNN(unicode轉(zhuǎn)義,見下文)

\xNN采用十六進(jìn)制值并插入適當(dāng)?shù)淖止?jié),同時(shí)\uNNNN采用 Unicode 代碼點(diǎn)并插入 UTF-8 序列。

筆記

在 0.8.0 版本之前,還有三個(gè)額外的轉(zhuǎn)義序列\(zhòng)b:\f和\v. 它們通常以其他語(yǔ)言提供,但在實(shí)踐中很少需要。如果您確實(shí)需要它們,它們?nèi)匀豢梢韵袢魏纹渌?ASCII 字符一樣分別通過(guò)十六進(jìn)制轉(zhuǎn)義符插入,\x08即\x0c 和。\x0b

以下示例中的字符串長(zhǎng)度為 10 個(gè)字節(jié)。它以換行字節(jié)開頭,后跟雙引號(hào),單引號(hào)和反斜杠字符,然后(不帶分隔符)字符序列abcdef。

"\n\"\'\\abc\
def"

任何不是換行符的 Unicode 行終止符(即 LF、VF、FF、CR、NEL、LS、PS)都被視為終止字符串文字。換行符僅在字符串文字前面沒有 . 時(shí)才終止\。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)