async-graphql/docs/zh-CN/src/default_value.md
Edward Rudd 3b7ed74d11 correct doc examples so they compile
- examples to fix still
  - error_extensions.md ResultExt example does not compile!
     - trait ErrorExtensions is not implemented for ParseIntError
  - dataloader
     - requires sqlx to work. So we either "stub" it OR we rewrite them simpler to use a  simple "faux" db library
2022-06-02 17:32:12 -04:00

74 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 默认值
你可以为输入值类型定义默认值,下面展示了在不同类型上默认值的定义方法。
## 对象字段参数
```rust
# extern crate async_graphql;
use async_graphql::*;
struct Query;
fn my_default() -> i32 {
30
}
#[Object]
impl Query {
// value参数的默认值为0它会调用i32::default()
async fn test1(&self, #[graphql(default)] value: i32) -> i32 { todo!() }
// value参数的默认值为10
async fn test2(&self, #[graphql(default = 10)] value: i32) -> i32 { todo!() }
// value参数的默认值使用my_default函数的返回结果值为30
async fn test3(&self, #[graphql(default_with = "my_default()")] value: i32) -> i32 { todo!() }
}
```
## 接口字段参数
```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!() }
# }
use async_graphql::*;
#[derive(Interface)]
#[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()")),
)]
enum MyInterface {
MyObj(MyObj),
}
```
## 输入对象(InputObject)
```rust
# extern crate async_graphql;
# fn my_default() -> i32 { 5 }
use async_graphql::*;
#[derive(InputObject)]
struct MyInputObject {
#[graphql(default)]
value1: i32,
#[graphql(default = 10)]
value2: i32,
#[graphql(default_with = "my_default()")]
value3: i32,
}
```