关于函数 modify@n 的一点疑问

大佬们,早上好!

我在学习 modify 函数的时候对 @n 选项返回修改后的值有一点小疑问,如下:

1、序表.modify@n(k, 值 1, 值 2…)

对序表 modify 时,不管序表的位置 k 处是否存在值,都会发生修改或者追加,且 @n 会返回修改后的记录,这个很方便,也没什么问题。

2、序列.modify@n(k, 值)

对序列 modify 时,@n 选项会返回不一样的值,这里的序列是指单层序列,比如数列 3.() 或者文本序列…此处的 @n 选项跟序表.modify@n 执行逻辑不一致,3 种情况:

a、序列的位置 k 超出序列长度,此时 modify@n 返回的是 null,比如,=[].modify@n(2,11),结果返回 null;

b、序列的位置 k 处的值是 null 或者 "",此时 modify@n 返回的是 null 或者"",比如,=[null,""].modify@n(2,11),结果返回"";

c、序列的位置 k 处存在非空值,此时 modify@n 返回的是 k 值,比如,[1,2].modify@n(2,22),结果返回 2

按照官网函数文档里的说明,一些函数的 @n 选项会返回修改后的结果,比如,insert@n,delete@n, 都会返回修改后的结果,但 modify 函数的 @n 选项针对不同的处理对象会有不同的执行逻辑,这一点让人困惑。按照我的理解,序列.modify@n 也应该返回修改后的值,是不是上述第 2 点使用的姿势不对?

恳请大佬有空时帮忙指点解惑,谢谢!