async-graphql/docs/zh-CN/src/default_value.md

74 lines
1.7 KiB
Markdown
Raw Normal View History

2020-05-26 15:27:50 +00:00
# 默认值
你可以为输入值类型定义默认值,下面展示了在不同类型上默认值的定义方法。
## 对象字段参数
```rust
# extern crate async_graphql;
2020-05-26 15:27:50 +00:00
use async_graphql::*;
struct Query;
fn my_default() -> i32 {
30
}
#[Object]
2020-05-26 15:27:50 +00:00
impl Query {
// value参数的默认值为0它会调用i32::default()
async fn test1(&self, #[graphql(default)] value: i32) -> i32 { todo!() }
2020-05-26 15:27:50 +00:00
// value参数的默认值为10
async fn test2(&self, #[graphql(default = 10)] value: i32) -> i32 { todo!() }
2020-05-26 15:27:50 +00:00
// value参数的默认值使用my_default函数的返回结果值为30
async fn test3(&self, #[graphql(default_with = "my_default()")] value: i32) -> i32 { todo!() }
2020-05-26 15:27:50 +00:00
}
```
## 接口字段参数
```rust
# extern crate async_graphql;
# fn my_default() -> i32 { 5 }
# struct MyObj;
# #[Object]
# impl MyObj {
# async fn test1(&self, value: i32) -> i32 { todo!() }
# async fn test2(&self, value: i32) -> i32 { todo!() }
# async fn test3(&self, value: i32) -> i32 { todo!() }
# }
2020-05-26 15:27:50 +00:00
use async_graphql::*;
#[derive(Interface)]
2020-09-13 04:12:32 +00:00
#[graphql(
field(name = "test1", type = "i32", arg(name = "value", type = "i32", default)),
field(name = "test2", type = "i32", arg(name = "value", type = "i32", default = 10)),
field(name = "test3", type = "i32", arg(name = "value", type = "i32", default_with = "my_default()")),
2020-05-26 15:27:50 +00:00
)]
enum MyInterface {
MyObj(MyObj),
}
```
## 输入对象(InputObject)
```rust
# extern crate async_graphql;
# fn my_default() -> i32 { 5 }
2020-05-26 15:27:50 +00:00
use async_graphql::*;
#[derive(InputObject)]
2020-05-26 15:27:50 +00:00
struct MyInputObject {
2020-09-28 09:44:00 +00:00
#[graphql(default)]
2020-05-26 15:27:50 +00:00
value1: i32,
2020-09-28 09:44:00 +00:00
#[graphql(default = 10)]
2020-05-26 15:27:50 +00:00
value2: i32,
#[graphql(default_with = "my_default()")]
2020-05-26 15:27:50 +00:00
value3: i32,
}
```