如何从状态获取列表并在qore中对其进行修改?

克里斯蒂安·巴丘(Cristian Baciu)

我正在使用ServiceApi :: saveStateData({“ my-key”:some_list}); 将列表保存到我的qorus IE状态的方法。我想问的是如何从状态中获取列表,以及如何从列表中添加/删除元素并将其放回状态中?我也想知道如何加入名单?例如,我想在some_list下加入两个列表并将其置于状态下?

多谢克里斯蒂预先提供的帮助

戴维·尼科尔斯

列表始终通过引用传递,即使列表具有“伪类”(与Qore中的其他基本类型一样),所有方法也是只读的。

要更改列表,请使用+ =+pushspliceextract运算符,unshiftpop运算符。

问:如何从列表中添加/删除元素?

选项1:使用提取运算符删除元素:

prompt$: qore -ne 'list<auto> l = (1, 2, 3, 4); printf("removed: %y\n", (extract l, 1, 2)); printf("l: %y\n", l);'
removed: [2, 3]
l: [1, 4]

选项2:使用带有范围remove运算符来删除列表的一部分:

prompt$ qore -ne 'list<auto> l = (1, 2, 3, 4); printf("removed: %y\n", remove l[1..2]); printf("l: %y\n", l);'
removed: [2, 3]
l: [1, 4]

问:如何加入名单?

使用+ =+连接列表:

prompt$ qore -ne 'list<auto> l1 = (1, 2); list<auto> l2 = (3, 4); printf("new list: %y\n", l1 + l2);'
new list: [1, 2, 3, 4]
prompt$  qore -ne 'list<auto> l1 = (1, 2); list<auto> l2 = (3, 4); l1 += l2; printf("new list: %y\n", l1);'
new list: [1, 2, 3, 4]

请注意,要将列表作为单个元素添加到另一个列表,最好使用push运算符:

qore -ne 'list<auto> l1 += (1, 2); list<auto> l2 = (3, 4); push l1, l2; printf("new list: %y\n", l1);'
new list: [1, 2, [3, 4]]

请注意,我+=在上面的原始分配中使用以确保l1具有类型list<auto>-作为简单分配将导致list<int>导致push表达式引发异常。

还要注意,因为列表是Qore中的基本类型,所以它们始终按值传递(从技术上讲,它们是使用写​​时复制语义通过引用传递的),以及列表的“伪类”(与Query中的所有伪类一样) Qore)仅实现只读方法;在Qore中更新左值只能由运算符完成。这是因为由于Qore的多线程特性,在Qore中更新左值很复杂。所有Qore运算符都是线程原子的,并且只能使用即使在复杂表达式中也能保证一致性和原子性的运算符才能更改lvalue。

上面的例外是对象中的对象,这些对象总是通过引用传递的(实际上在技术上带有引用的副本,类似于Java)。所有其他值类型均按值传递。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从POST请求中获取XML并在Servlet过滤器中对其进行修改?

如何从 dict 列表中获取前 3 个唯一名称并在 python 中对其进行计数

流式地图并在Java 8中对其进行修改

如何共享对象列表而不提供修改其状态的能力?

如何从列表中随机选择一个变量,然后在python中对其进行修改?

如何获取每天的进出时间并在日期范围之间的查询中对其进行计数?

我如何从用户那里获取最新的tweet并在UILabel中对其进行更新?

如何将列表从控制器传递到jsp并在Spring MVC中的javascript中对其进行迭代

如何从系数列表中获取lm对象并在R中进行拦截

通过参数传递变量并在稍后的类中对其进行修改

从字符串中提取数字并在Java中对其进行修改

如何使用 openssl 获取自签名证书并在 URLSession 身份验证质询中对其进行验证

如何在Qore / Qorus中获取文件分隔符:/或\?

如何告诉git停止显示处于git状态的文件,直到再次对其进行修改?

无法进行git pull:已在ff4e1bf(最新的ec2实例列表)中删除该文件,并在HEAD中对其进行了修改。树中剩余文件的版本HEAD

如何在不改变状态本身的情况下获取状态值并对其进行操作?

在单个 db 调用中获取所有数据并在 Controller - Codeigniter 中对其进行过滤?

修改列表:对其进行过滤,然后重新排列结果中的值

获取一个类似于XML的String元素,并在Java中对其进行操作

获取用户自定义元数据值并在WooCommerce订单中对其进行更新

在python中获取os.system的输出并在之后对其进行处理

从.CSV获取主题标签,并在Python 3中对其进行计数

获取按 $dayOfWeek 分组的每个用户的日期数组并在 MongoDb 中对其进行操作

在Perl中对其进行修改后获取警告打印数组对象

如何在 Ansible 中按其属性对列表进行排序?

是否有正则表达式递归修改列表并在python3中更改其元素?

如何创建数组列表类并在Flutter中获取数据

通过保留其相对路径的列表获取远程文件,并在远程计算机上进行操作

如何从其点列表中获取折线的顶点?