类型强制转换(Type coercion)
本文档描述了当 Make 接收到预期或非预期数据格式的值时,其处理方式。当预期为 Array(数组)时:
接收到的值 | 描述 ---|--- array(数组) | 值将原样传递。 其他(other) | 如果接收到的值不是 array(数组)类型,Make 将创建一个 array(数组),接收到的值将作为该 array(数组)的第一个(也是唯一的)元素。当预期为 Boolean(布尔值)时:
接收到的值 | 描述 ---|--- boolean(布尔值) | 值将原样传递。 number(数字) | 值将转换为逻辑 Yes(真),即使值为 0。 text(文本) | 如果值等于 false 或值为空,则转换为逻辑 No(假)。否则,转换为逻辑 Yes(真)。 其他(other) | 只要接收到的值存在(不为 null(空值)),值将转换为逻辑 Yes(真)。当预期为 Buffer(缓冲区)时:
接收到的值 | 描述 ---|--- buffer(缓冲区) | 仅当 codepage(代码页)符合预期时,值才原样传递。如果 codepage(代码页)不同,Make 将尝试将接收到的值转换为请求的 codepage(代码页)。如果不支持此转换,Make 将返回 validation error(验证错误)。 boolean(布尔值) | 值将转换为 text(文本)(true/false),然后按照上述转换为 text(文本) 的步骤转换为 binary data(二进制数据)。 date(日期) | 值将转换为 ISO 8601 text(文本),然后按照上述转换为 text(文本) 的步骤转换为 binary data(二进制数据)。 number(数字) | 值将转换为 text(文本),然后按照上述转换为 text(文本) 的步骤转换为 binary data(二进制数据)。 text(文本) | 值将转换为 binary data(二进制数据)并按预期进行 encoding(编码)。如果未指定预期 encoding(编码),将使用 utf8 encoding(编码)。 其他(other) | Make 返回 validation error(验证错误)。当预期为 Collection(集合)时:
接收到的值 | 描述 ---|--- collection(集合) | 值将原样传递。 其他(other) | Make 返回 validation error(验证错误)。当预期为 Date(日期)时:
接收到的值 | 描述 ---|--- date(日期) | 值将原样传递。 text(文本) | Make 将尝试将 text(文本)转换为 date(日期)。如果转换失败,将返回 validation error(验证错误)。Date(日期)必须包含日、月和年。Date(日期)可包含 time(时间)和 time zone(时区)。默认 time zone(时区)基于您的设置。请参阅这些 示例。 number(数字) | Make 会将 number(数字)视为自 1970 年 1 月 1 日(UTC)以来的 milliseconds(毫秒数),并将其转换为相应的 date(日期)。 其他(other) | Make 返回 validation error(验证错误)。日期格式示例(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