类型强制转换(Type coercion)
本文档描述了当 Make 接收到预期或非预期数据格式的值时,其处理方式。
当预期为 数组时:
| 接收到的值 | 描述 |
|---|---|
| 数组 | 值将原样传递。 |
| 其他(other) | 如果接收到的值不是 数组类型,Make 将创建一个 数组,接收到的值将作为该 数组的第一个(也是唯一的)元素。 |
当预期为 布尔值时:
| 接收到的值 | 描述 |
|---|---|
| 布尔值 | 值将原样传递。 |
| 数字 | 值将转换为逻辑 真,即使值为 0。 |
| 文本 | 如果值等于 false 或值为空,则转换为逻辑 假。否则,转换为逻辑 真。 |
| 其他(other) | 只要接收到的值存在(不为 空值),值将转换为逻辑 真。 |
当预期为 缓冲区时:
| 接收到的值 | 描述 |
|---|---|
| 缓冲区 | 仅当 代码页符合预期时,值才原样传递。如果 代码页不同,Make 将尝试将接收到的值转换为请求的 代码页。如果不支持此转换,Make 将返回 验证错误。 |
| 布尔值 | 值将转换为 文本(true/false),然后按照上述转换为 文本 的步骤转换为 二进制数据。 |
| 日期 | 值将转换为 ISO 8601 文本,然后按照上述转换为 文本 的步骤转换为 二进制数据。 |
| 数字 | 值将转换为 文本,然后按照上述转换为 文本 的步骤转换为 二进制数据。 |
| 文本 | 值将转换为 二进制数据并按预期进行 编码。如果未指定预期 编码,将使用 utf8 编码。 |
| 其他(other) | Make 返回 验证错误。 |
当预期为 集合时:
| 接收到的值 | 描述 |
|---|---|
| 集合 | 值将原样传递。 |
| 其他(other) | Make 返回 验证错误。 |
当预期为 日期时:
| 接收到的值 | 描述 |
|---|---|
| 日期 | 值将原样传递。 |
| 文本 | Make 将尝试将 文本转换为 日期。如果转换失败,将返回 验证错误。日期必须包含日、月和年。日期可包含 时间和 时区。默认 时区基于您的设置。请参阅这些 示例。 |
| 数字 | Make 会将 数字视为自 1970 年 1 月 1 日(UTC)以来的 毫秒数,并将其转换为相应的 日期。 |
| 其他(other) | Make 返回 验证错误。 |
日期格式示例(Examples of date format)
-
2016-06-20T17:26:44.356Z
-
2016-06-20 19:26:44 GMT+02:00
-
2016-06-20 19:26+0200
-
2016-06-20 17:26:44
-
2016-06-20
-
2016/06/20 17:26:44
-
2016/06/20 19:26:44+02:00
-
2016/06/20 17:26
-
2016/06/20 5:26 PM
-
2016/06/20
-
06/20/2016 17:26:44
-
06/20/2016 19:26:44+02:00
-
06/20/2016 17:26
-
06/20/2016 5:26 PM
-
06/20/2016
-
20.6.2016 17:26:44
-
20.6.2016 19:26:44+02:00
-
20.6.2016 19:26:44+02:00
-
20.6.2016
当预期为 数字时:
| 接收到的值 | 描述 |
|---|---|
| 数字 | 值将原样传递。 |
| 文本 | Make 将尝试将 文本转换为 数字。如果转换失败,将返回 验证错误。 |
| 其他(other) | Make 返回 验证错误。 |
当预期为 文本时:
| 接收到的值 | 描述 |
|---|---|
| 文本 | 值将原样传递。 |
| 数组 | 如果给定的 数组支持转换为 文本,值将被转换。如果不支持,Make 将返回 验证错误。 |
| 集合 | 值将转换为 JSON 字符串。集合的 数组 会单独转换为以逗号分隔的列表。 |
| 布尔值 | 值将转换为 文本(true/false)。 |
| 缓冲区 | 如果为 二进制数据指定了 文本编码,值将转换为 文本。如果未指定,Make 将返回 验证错误。 |
| 日期 | 值将转换为 ISO 8601 文本。 |
| 数字 | 值将转换为 文本。 |
| 其他(other) | Make 返回 验证错误。 |
当预期为 时间时:
| 接收到的值 | 描述 |
|---|---|
| 时间 | 值将原样传递。 |
| 文本 | Make 将尝试将 时间转换为 小时:分钟:秒 格式。如果转换失败,将返回 验证错误。 |
| 其他(other) | Make 返回 验证错误。 |