类型强制转换(Type coercion)
本文档描述了当 Make 接收到预期或非预期数据格式的值时,其处理方式。当预期为 数组时:
接收到的值 | 描述 ---|--- 数组 | 值将原样传递。 其他(other) | 如果接收到的值不是 数组类型,Make 将创建一个 数组,接收到的值将作为该 数组的第一个(也是唯一的)元素。当预期为 布尔值时:
接收到的值 | 描述 ---|--- 布尔值 | 值将原样传递。 数字 | 值将转换为逻辑 真,即使值为 0。 文本 | 如果值等于 false 或值为空,则转换为逻辑 假。否则,转换为逻辑 真。 其他(other) | 只要接收到的值存在(不为 空值),值将转换为逻辑 真。当预期为 缓冲区时:
接收到的值 | 描述 ---|--- 缓冲区 | 仅当 代码页符合预期时,值才原样传递。如果 代码页不同,Make 将尝试将接收到的值转换为请求的 代码页。如果不支持此转换,Make 将返回 验证错误。 布尔值 | 值将转换为 文本(true/false),然后按照上述转换为 文本 的步骤转换为 二进制数据。 日期 | 值将转换为 文本,然后按照上述转换为 文本 的步骤转换为 二进制数据。 数字 | 值将转换为 文本,然后按照上述转换为 文本 的步骤转换为 二进制数据。 文本 | 值将转换为 二进制数据并按预期进行 编码。如果未指定预期 编码,将使用 编码。 其他(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