Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如果满足false条件,则退出Ruby delete__Arrays_Ruby_Hash - Fatal编程技术网

Arrays 如果满足false条件,则退出Ruby delete_

Arrays 如果满足false条件,则退出Ruby delete_,arrays,ruby,hash,Arrays,Ruby,Hash,我有下面一行代码,它存储了一系列反向时间戳,并通过比较存储的时间戳和Time.now-5.minutes之间的间隔来删除过期的时间戳(这是要比较的“过期”时间戳) 我希望delete\u if在到达第一个未过期的时退出,也就是说,当ts@@timestamp[@name]时。在{ts | ts哇,谢谢!不知道这个存在时退出。如果{| x | break除非x只是好奇-如果这样做,这会像修改delete_一样修改底层数组吗?我认为不会。因此我需要将新数组重新分配给@@timestamp[@name

我有下面一行代码,它存储了一系列反向时间戳,并通过比较存储的时间戳和
Time.now-5.minutes
之间的间隔来删除过期的时间戳(这是要比较的“过期”时间戳)


我希望
delete\u if
在到达第一个
未过期的
时退出,也就是说,当
ts
@@timestamp[@name]时。在{ts | ts哇,谢谢!不知道这个存在时退出。如果{| x | break除非x只是好奇-如果
这样做,这会像修改
delete_一样修改底层数组吗?我认为不会。因此我需要将新数组重新分配给
@@timestamp[@name]
对吗?你是正确的(接收器没有变异)。查看文档。每当一个方法改变接收者时,文档都会说明它是这样做的。什么是
@@timestamp[@name]
?啊,“list”是指数组。不,等等,你写了“this hash”,所以它一定是一个hash。那么,像
ts
这样的键值对如何与时间进行比较?什么是
{expired,expired,not expired,not expired,not expired}
应该是什么?它不是有效的Ruby构造。它是表示集合的数学符号吗?那么它应该等价于
{not expired,expired}
@@timestamp[@name].delete_if { |ts| ts <= Time.now - 5.minutes }
@@timestamp[@name] << Time.now
{expired, expired, expired, not-expired, not-expired, not-expired}
@@timestamp[@name].drop_while { |ts| ts <= Time.now - 5.minutes }