如何将动态类型的参数传递给函数?

吉吉利希

可以说我想为HTTP API写一个小的客户端。它具有返回汽车列表的资源:

GET /cars

它还接受两个可选的查询参数colormanufacturer,因此我可以查询特定的汽车,例如:

GET /cars?color=black
GET /cars?manufacturer=BMW
GET /cars?color=green&manufacturer=VW

如何在Rust中适当地公开这些资源?由于Rust不支持重载,因此定义多个函数似乎是通常的方法,例如:

fn get_cars() -> Cars
fn get_cars_by_color(color: Color) -> Cars
fn get_cars_by_manufacturer(manufacturer: Manufacturer) -> Cars
fn get_cars_by_manufacturer_and_color(manufacturer: Manufacturer, color: Color) -> Cars

但是,当您拥有多个参数时,这显然将无法缩放。

另一种方法是使用结构:

struct Parameters {
    color: Option<Color>,
    manufacturer: Option<Manufacturer>
}

fn get_cars(params: Parameters) -> Cars

这具有相同的缩放问题,必须在创建时设置每个struct字段(即使其值只是None)。

我想我可以接受HashMap<String, String>,但这听起来也不是很好。所以我的问题是,在Rust中执行此操作的正确/最佳方法是什么?

yon

您可以使用Builder模式,提到这里对于您的特定API,它可能如下所示:

Cars::new_get()
    .by_color("black")
    .by_manufacturer("BMW")
    .exec();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将动态数量的类型化参数传递给函数?

来自分类Dev

.Net反射使用通用参数调用函数-如何将类型传递给函数

来自分类Dev

如何将动态参数传递给datetime.timedelta函数?

来自分类Dev

如何将函数作为参数传递给参数?

来自分类Dev

如何将函数作为参数传递给transform()函数?

来自分类Dev

如何将字段构造函数参数传递给函数?

来自分类Dev

如何将任何记录(任何类型)传递给Delphi xe7函数作为参数?

来自分类Dev

如何将类型参数传递给泛型类构造函数引用?

来自分类Dev

如何将长整型值传递给以整数作为返回类型的函数的参数?

来自分类Dev

我不知道类型时如何将参数传递给函数

来自分类Dev

如何将任何记录(任何类型)传递给Delphi xe7函数作为参数?

来自分类Dev

如何将类型参数传递给泛型类构造函数引用?

来自分类Dev

如何将 Map 类型的参数从 Java 传递给 orientdb groovy 函数

来自分类Dev

如何将动态参数传递给MySQL视图

来自分类Dev

Java:如何将动态数量的参数传递给方法

来自分类Dev

如何将动态参数传递给查询?

来自分类Dev

如何将按钮文本动态传递给VBA函数

来自分类Dev

如何将结构的动态数组传递给成员函数?

来自分类Dev

如何将json响应传递给函数:类型'unknown'的参数不能分配给类型'any []'的参数

来自分类Dev

如何将参数类型数组传递给Type []?

来自分类Dev

如何将空参数传递给python函数?

来自分类Dev

如何将初始参数传递给javascript函数

来自分类Dev

如何将通道作为参数传递给函数?

来自分类Dev

如何将函数参数传递给boost :: async()

来自分类Dev

Javascript:如何将参数传递给回调函数

来自分类Dev

如何将参数传递给静态类构造函数?

来自分类Dev

如何将值传递给函数的左侧参数?

来自分类Dev

如何将参数传递给funscript函数?

来自分类Dev

如何将值传递给函数的左侧参数?

Related 相关文章

  1. 1

    如何将动态数量的类型化参数传递给函数?

  2. 2

    .Net反射使用通用参数调用函数-如何将类型传递给函数

  3. 3

    如何将动态参数传递给datetime.timedelta函数?

  4. 4

    如何将函数作为参数传递给参数?

  5. 5

    如何将函数作为参数传递给transform()函数?

  6. 6

    如何将字段构造函数参数传递给函数?

  7. 7

    如何将任何记录(任何类型)传递给Delphi xe7函数作为参数?

  8. 8

    如何将类型参数传递给泛型类构造函数引用?

  9. 9

    如何将长整型值传递给以整数作为返回类型的函数的参数?

  10. 10

    我不知道类型时如何将参数传递给函数

  11. 11

    如何将任何记录(任何类型)传递给Delphi xe7函数作为参数?

  12. 12

    如何将类型参数传递给泛型类构造函数引用?

  13. 13

    如何将 Map 类型的参数从 Java 传递给 orientdb groovy 函数

  14. 14

    如何将动态参数传递给MySQL视图

  15. 15

    Java:如何将动态数量的参数传递给方法

  16. 16

    如何将动态参数传递给查询?

  17. 17

    如何将按钮文本动态传递给VBA函数

  18. 18

    如何将结构的动态数组传递给成员函数?

  19. 19

    如何将json响应传递给函数:类型'unknown'的参数不能分配给类型'any []'的参数

  20. 20

    如何将参数类型数组传递给Type []?

  21. 21

    如何将空参数传递给python函数?

  22. 22

    如何将初始参数传递给javascript函数

  23. 23

    如何将通道作为参数传递给函数?

  24. 24

    如何将函数参数传递给boost :: async()

  25. 25

    Javascript:如何将参数传递给回调函数

  26. 26

    如何将参数传递给静态类构造函数?

  27. 27

    如何将值传递给函数的左侧参数?

  28. 28

    如何将参数传递给funscript函数?

  29. 29

    如何将值传递给函数的左侧参数?

热门标签

归档