在 GraphQL 中,空格似乎很重要,因为它分隔令牌:
{
human(id: "1000") {
name
height
}
}
Run Code Online (Sandbox Code Playgroud)
但是,规范说空格不重要,并且没有指定标记、名称等的分隔方式。
我认为换行符在分离name和height在上面的例子中可能很重要。删除换行符并将它们放在同一行上,用空格或制表符分隔是否有效?我认为缩进是微不足道的?这是有效的 GraphQL,是否与上述完全等效?:
{human(id: "1000") {name height}}
Run Code Online (Sandbox Code Playgroud)
显然,这将打破,如果我们消除之间的空间name和height,让空间显得无关紧要。由于 GraphQL 不使用逗号,规范是否应该指定空格很重要?
从规范(强调我的):
空格用于提高源文本的易读性并充当标记之间的分隔,并且任意数量的空格可以出现在任何标记之前或之后。标记之间的空格对于 GraphQL Document 的语义意义并不重要,但是空格字符可能会出现在 String 或 Comment 标记中。
换句话说,需要使用空格(或任何其他被忽略的标记)来分隔标记。但它本身不具有语义意义,因此意义不大。
空格、制表符、换行符和逗号都是被忽略的标记,并且可以互换使用来分隔标记。以下片段在语义上是等效的并且都是有效的语法:
name height
Run Code Online (Sandbox Code Playgroud)
name height
Run Code Online (Sandbox Code Playgroud)
name,height
Run Code Online (Sandbox Code Playgroud)
name
height
Run Code Online (Sandbox Code Playgroud)
name , ,,,,
,, height
Run Code Online (Sandbox Code Playgroud)
您使用什么令牌最终取决于您,但是您应该始终牢记可读性。
| 归档时间: |
|
| 查看次数: |
525 次 |
| 最近记录: |