持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第1天,点击查看活动详情
一点说明
首先在Caché ObjectScript Functions中方法是不分大小写的.所以$PIECE $P或者$piece $p都是一样的。下文统一用$p。
具体使用方法
1) 拼接填值
piece意为拼凑,所以$p是一个拼凑字符串的函数。
如在字符串a="1|2|3"中第3个|分割的位置拼接填值 4:
set $p(a,"|",3)=4 //此时 a=1|2|4
2) 分割取值
另外一个用法就是分割取值,这个用法是最常见的用法,反而第一个用法不常用。
如在字符串b="1|2|3"中以"|"分割,取第3位置的值:
w $p(b,"|",3),! //3
注意点
1) 在字符串c="1|2|3"中第5个|分割的位置拼接填值 5 会怎么样?
答案是 c=1|2|3||5 这在更新方法中非常实用,不用判断入参有多少个分割符。
2) 在字符串d="1|2|3"中以"|"分割,取第5位置的值 会怎么样?
答案是 空 也不会报错,所以不用判断"|"分割的长度是多少
3) 在字符串e="1|2|3|4|5"中以"|"分割,取第2位置的值到第4位置的值 会怎么样?
答案是 w $p(e,"|",2,4),! //2|3|4 也就是分割取值的超级变种方法
4) 在字符串f="1|2|3|"中以"/"分割,取第2位置的值 会怎么样?
答案是 空 也不会报错,也不需要去判断有没有分割符
5) 在字符串g=""中以"|"分割,取第2位置的值 会怎么样?
答案是 空 也不会报错,也不需要去判断是否为空
当然w $p(h,"|",2),! //h未定义 这个肯定会报错的
所以一般$p可以先用$d判断是否变量被定义。下一节讲$d
以上的代码片段