数组与字符串表达式
共同取项、查找、切片、拆分、连接和 Unicode 大小写
原生动态库、桌面脚本、网页主线程和Worker使用共同求值器。
| 表达式 | 用法 |
|---|---|
| at | ['at', index, array],索引须为范围内非负整数 |
| length | ['length', stringOrArray] |
| in | ['in', item, array] 或字符串子串 |
| index-of | ['index-of', item, stringOrArray, from?],未找到返回-1 |
| slice | ['slice', stringOrArray, start, end?],含start不含end |
| split/join | ['split', string, separator] / ['join', array, separator] |
| upcase/downcase | 单个字符串输入,Unicode大小写转换 |
map.setPaintProperty('points', 'circle-radius', [
'at', 1, ['get', 'sizes']
]);
await map.sqs.flush({ render: true });
字符串位置按Unicode码点计数,中文和Emoji各占一个位置;不是字节、UTF-16码元或字素簇。组合音标仍分别计数。slice负索引从末尾计算,边界截断;数值索引截去小数。index-of起点截去小数并截到非负,超出长度返回-1。at不允许小数或越界。
split空分隔符按码点拆分,非空分隔符保留空片段;join沿用共同标量字符串格式(null为空串,数值用十进制格式,复合值为JSON),未声明JavaScript嵌套数组隐式转换兼容。大小写转换采用Rust Unicode规则,没有语言地区参数。
扫描长度计入8192步预算;字符串按UTF-8字节收费,join/大小写输出限4096字节,超限返回RESOURCE_LIMIT。无效静态类型在写入前拒绝,无效运行数据沿用paint默认值/警告。
完整HTML公开四按钮和全部处理;共同脚本覆盖13项。语法参照公开MapLibre规范,SqsMap实现自研。地区排序/格式化、专有值和其它表达式仍在任务清单;设备验收单独记录。
共同join已修复嵌套数组/对象转换,保留split和预算;见join值转换。