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