parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Удаление строки из таблицы при её переборе

G_Z 18.07.2023 21:30 / 18.07.2023 21:31

Redmine не шевелится, пишу сюда.

Хотим удалить из таблицы строки по условию (можно сделать select с обратным условием, но хотим вот так — условие не обязательно простое, это может быть список ключей или их частей):
$t[^table::create{p
1
2
3
}]
^t.menu{
	^if($t.p < 3){
		^t.delete[]
	}
}
В таблице остаётся две строки: 2 и 3.
Ожидалась одна — 3.

Делаем то же самое с хешем:
$h[
	$.1[]
	$.2[]
	$.3[]
]
^h.foreach[k;]{
	^if($k < 3){
		^h.delete[$k]
	}
}
Как и ожидалось, остался один ключ 3.

Похоже, дело в смещении указателя при удалении, но простым выводом указателя текущей строки это не подтверждается.

В документации никаких тонкостей работы удаления строки не описано.
Обошёл через locate + delete, но выглядит странно.

  • Удаление строки из таблицы при её переборе, G_Z [M] 18.07.2023 21:30 / 18.07.2023 21:31