gpt4 book ai didi

javascript - 这些括号/逗号在此赋值中意味着什么?

转载 作者:行者123 更新时间:2023-12-01 01:17:34 25 4
gpt4 key购买 nike

我正在致力于将 GraphQL 引用实现从 javascript 移植到 C#。我遇到了一些我不理解或不知道如何推理的东西,所以我不确定移植它的正确方法。有问题的代码如下所示,或者您可以访问此链接查看存储库 parseConstArgument function in parse.js 中的代码:

    function parseConstArgument(lexer: Lexer<*>): ArgumentNode {
const start = lexer.token;
return {
kind: Kind.ARGUMENT,
name: parseName(lexer),
value: (expectToken(lexer, TokenKind.COLON), parseConstValue(lexer)),
loc: loc(lexer, start),
};
}

所以我不理解的是对 value 字段进行赋值的行。 expectToken 函数返回一个 Token 对象或引发错误。 parseConstValue 函数返回一个 ValueNode 对象。 value 字段本身需要分配一个 ValueNode

那么这是在做什么呢?它是否首先执行expectToken来利用可能的错误,如果没有抛出错误,它会丢弃返回的Token,然后分配parseConstValue的结果> 到字段?这是我最好的猜测,但我不是 100% 确定,而且我不知道如何描述此语法以对其进行 Google 搜索。

另一个类似的令人困惑的字段分配就像这里的 parseValueLiteral function in parse.js

return {
kind: Kind.INT,
value: ((token.value: any): string),
loc: loc(lexer, token),
};

我再次感到困惑的是对值字段的赋值。在这种情况下 value 需要一个字符串,所以我只是假设这个“奇怪”的语法只是将 token.value (一个字符串)分配给 value 领域。

如果有人能够解释这一点并可能指出有关这些 javascript 功能的文档,我们将不胜感激。我真的很想确保我不会在我的端口中引入错误,因为我不理解 javascript 语法。

最佳答案

value: (expectToken(lexer, TokenKind.COLON), parseConstValue(lexer))

似乎是为了始终在 parseConstValue(lexer) 之前执行 expectToken(lexer, TokenKind.COLON),方法是将两个用逗号分隔的函数调用包装起来 , 运算符加上括号,形成一个表达式,其中结果值集始终由 parseConstValue(lexer) 的返回值决定。

关于javascript - 这些括号/逗号在此赋值中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54600813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com