RailsGraphQL:解析程序方法的参数-分号后缀的含义



id参数后面的分号是什么意思?请在摘录中查看我的评论。

这不是Ruby符号。不是吗?否则分号将在左侧。ID是一个整数。目前有点困惑。。。

field :vendor, VendorType, null: false,
description: "A single car-vendor." do
argument :id, ID, required: true
end
def vendor(id:) # Why is there a semicolon after "id"?
Vendor.find(id)
end

语法定义了一个关键字参数,调用者必须明确声明:

def v(id:)
p id
end
v(1) # error
v(id: 1)
1
=> 1 
v(something: 1)
ArgumentError (missing keyword: id)

它有它的用途,主要用于控制台中的交互,确保用户在调用方法之前知道他们在做什么,或者确保代码库的新开发人员了解如何调用方法。

如果缺少所需的参数,Ruby会抛出一个很好的ArgumentError,它简洁明了,减少了未来开发人员使用代码库的认知开销。

最新更新