6.1.3. 引用

未加引号的字符串是不包含任何空格,制表符,回车符或换行符,单引号或双引号字符,分号(“;”),大括号(“{”或“}”)的任何字符序列,或注释序列(“//”,“/*”或“*/”)。

请注意,任何关键字都可以合法显示为未加引号的字符串。

在不带引号的字符串中,每个字符都被保留。请注意,这意味着反斜杠字符在没有引号的字符串中没有任何特殊含义。

如果双引号字符串包含换行符,后跟用于根据YANG文件中的布局缩进文本的空格或制表符,则会将该前导空白符从字符串中删除,直到包括起始列双引号字符或第一个非空白字符,以先发生者为准。必须检查剥离的后续行中的任何制表符首先被转换为8个空格字符。

如果双引号字符串在换行符之前包含空格或制表符,则将从字符串中除去该尾随的空格。

单引号字符串(用' '括起来)保留引号内的每个字符。单引号字符不能出现在单引号字符串中,即使前面加了反斜杠。

在双引号字符串(用" "括起来)中,反斜杠字符引入了一个特殊字符的表示,该字符取决于紧跟在反斜杠后面的字符:

  • \n 换行符
  • \t 制表符
  • \" 一个双引号
  • \\ 一个反斜杠

反斜杠不能跟随任何其他字符。

如果引用的字符串后跟加号(“+”),后跟另一个带引号的字符串,则这两个字符串将连接成一个字符串,从而允许多个连接来构建一个字符串。被引用的字符串和加号字符之间允许有空格,换行符和注释。

在双引号字符串中,空白修剪在替换反斜线转义字符之前完成。连接是作为最后一步执行的。

6.1.3.1. 引用例子

以下字符串是等效的:

  1. hello
  2. "hello"
  3. 'hello'
  4. "hel" + "lo"
  5. 'hel' + "lo"

以下示例显示了一些特殊的字符串:

  • "\"" - 包含双引号的字符串
  • '"' - 包含双引号的字符串
  • "\n" - 包含换行符的字符串
  • '\n' - 包含反斜杠后跟字符n的字符串

以下示例显示了一些非法字符串:

  • '''' - 单引号字符串不能包含单引号
  • """ - 一个双引号必须用双引号字符串转义

以下字符串是等效的:

  1. "first line
  2. second line"
  1. "first line\n" + " second line"