Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在GraphQL中,空格是否重要?_Graphql - Fatal编程技术网

在GraphQL中,空格是否重要?

在GraphQL中,空格是否重要?,graphql,Graphql,在GraphQL中,空白似乎很重要,因为它分隔了标记: { human(id: "1000") { name height } } 但是,空白并不重要,并且没有指定标记、名称等的分隔方式 我认为在上面的例子中,换行符在分隔name和height时可能很关键。删除换行符并将它们放在同一行上,用空格或制表符分隔是否有效?我想压痕是无关紧要的?这是有效的GraphQL吗?它是否完全等同于上述内容 {human(id: "1000") {name height}} 显然,如果

在GraphQL中,空白似乎很重要,因为它分隔了标记:

{
  human(id: "1000") {
    name
    height
  }
}
但是,空白并不重要,并且没有指定标记、名称等的分隔方式

我认为在上面的例子中,换行符在分隔
name
height
时可能很关键。删除换行符并将它们放在同一行上,用空格或制表符分隔是否有效?我想压痕是无关紧要的?这是有效的GraphQL吗?它是否完全等同于上述内容

{human(id: "1000") {name height}}
显然,如果我们消除了
name
height
之间的空格,它就会中断,因此空格似乎很重要。由于GraphQL不使用逗号,规范是否应该指定空白是重要的?

来自规范(重点):

空白用于提高源文本的易读性,用作标记之间的分隔,任何数量的空白都可能出现在任何标记之前或之后。标记之间的空格对于GraphQL文档的语义意义来说并不重要,但是空格字符可能出现在字符串或注释标记中

换句话说,需要使用空格(或任何其他空格)来分隔令牌。但它本身没有语义,因此意义不大

空格、制表符、新行和逗号都是被忽略的标记,可以互换地用于分隔标记。以下代码段在语义上是等效的,并且所有语法都是有效的:

name height

您使用的代币最终取决于您自己,但是您应该始终牢记易读性。

谢谢。你的几个例子中的逗号是什么意思?它们是否包含在规范中?我已经链接并得到了它。在空白处,我想我不明白什么是需要的东西,但同时“忽略”、“无关紧要”,并且没有语义意义。我会用不同的方式来描述它,因为它需要分离令牌。顺便说一下,规范并没有说可以使用新行来分隔令牌。它仅将选项卡和空格定义为该部分中的“空白”。在“行终止符”部分是不明确的。标记如何分离的主题应该明确指出,它们应该只说明可以使用什么。因此,根据规范,您的第四个示例(仅包含新行)不应该起作用。它只是说新行用于提高易读性。它并没有说它们分隔标记,就像它用空格和逗号(其中“空格”是水平制表符和空格)分隔标记一样。同样,忽略标记部分指定忽略标记用于分隔词汇标记,行终止符是忽略标记。行终止符部分没有详细说明这一点,这一事实并不否定下面几段所述的内容。如果您对如何使规范更清晰有任何建议,欢迎您针对回购协议开立一个问题或PR。
name   height
name,height
name
height
name ,  ,,,,
,, height