跳到主要内容

数组与字符串表达式

共同取项、查找、切片、拆分、连接和 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值转换。