ソースリストを変更せずにリストからサブリストを取得するQore演算子/関数があります。つまり、substr()
に相当します。 extract
演算子は元のリストから項目を削除します。Qoreのリストからアイテムのシーケンスを取得する方法
list l = (1,2,3,4,5,6,7,8,9);
list l2 = extract l, 2, 4;
printf("l:%y\nl2:%y\n", l, l2);
l:[1, 2, 7, 8, 9]
l2:[3, 4, 5, 6]
ソースリストを変更せずにリストからサブリストを取得するQore演算子/関数があります。つまり、substr()
に相当します。 extract
演算子は元のリストから項目を削除します。Qoreのリストからアイテムのシーケンスを取得する方法
list l = (1,2,3,4,5,6,7,8,9);
list l2 = extract l, 2, 4;
printf("l:%y\nl2:%y\n", l, l2);
l:[1, 2, 7, 8, 9]
l2:[3, 4, 5, 6]
select
オペレータは、インデックスとして拡張された状態引数$#
マクロに対応しています。あなたがあなた自身の質問への答えで述べたように
list l = (1,2,3,4,5,6,7,8,9);
list l2 = select l, $# >= 2 && $# <2+4;
printf("l:%y\nl2:%y\n", l, l2);
l:[1, 2, 3, 4, 5, 6, 7, 8, 9]
l2:[3, 4, 5, 6]
Qore 0.8.13はリストスライス+範囲演算子などを明示的にサポートしてリリースされています。 https://docs.qore.org/qore-0.8.13/lang/html/operators.html#range_operatorおよびhttps://docs.qore.org/qore-0.8.13/lang/html/operators.htmlを参照してください。詳細については#list_element_operatorをご覧ください –