08/05/28 21:17:34
>>599
終わった話題なんだけど、ちょっと気になった。
めんどくさかったら、スルーして。
提示してくれてるルーチンだと、
引数1 @array1 = ();
引数2 @array2 = ( 1,2 );
のとき、返り値が空になっちゃうよね。
配列1(引数1) > 配列2(引数2) という優先順位で、
配列3(返り値)を混ぜ合わせるというのが目的の処理だと思うんだけど、
配列1と配列2で要素数の大きい配列を、要素数だけループさせる処理にする場合、
キレイにまとめる方法ってないかなぁ?
if( ( $#array1 <=> $#array2 ) == -1 ) {
EXPR for( 0..$#array2 );
} else {
EXPR for( 0..$#array1 );
}
みたいな、冗長な方法しか俺には思い浮かばなかった。
だから、「配列の重複値をハッシュを利用してマージ」の応用みたいなことを>>597でやってみたわけだ。
なんか美しい方法あればいいんだけどなぁ。