今回のタイトルの通りっす。
正解かどうかは別にして、自分なりの使い分けを書いておくっす。
どうもぺんぎんっす( ◎v◎ )
"Delete"と付いてるので渡したlistも変わっちゃいそうなんっすけど、
実際にはコピーを渡してるので元のlistには変化がないっす。
というわけで、2つの関数は同じことをしてるわけっす。
自分の使い分けは
別のlistに代入するときはllList2Listを
元のlistの要素を削除するときにはllDeleteSubListを
という風にしてるっす。
2種類とも使ってるっすよ。
例えば、ギザギザリストを番兵を使って作ったとするっす。
list a = [1, 2, 3, -1, 4, 5, -1, 6, -1, 7, 8, 9, -1];
みたいな感じっす。これは-1を番兵としてるっす。
これを区分けして処理していくことを考えるっす。
[1, 2, 3]
[4, 5]
[6]
[7, 8, 9]
としたlistを取りたいわけっす。
ここで自分ならどうするかというと、
integer sentinel; // 番兵のインデックス
while(a) // while(llGetListLength(a) != 0) と同義
{
sentinel = llListFindList(a, [-1]);
処理(llList2List(a, 0, sentinel - 1));
a = llDeleteSubList(a, 0, sentinel);
}
なんとなく雰囲気は伝わったと思うんっすけど、どうっすかね?
0 件のコメント:
コメントを投稿