無差別に技術をついばむ鳥

情報処理技術全般を気まぐれにつつくゆるいブログです

Dをつつく9−動的配列。人間は全てを予知出来ない。

バサバサバサバサバサバサバサバサバサ バサバサバサバサバサバサバサバサバサおっと!スットプ!スットプ

ふうー。調子が良すぎて一日中飛んでしまったよ。 じゃあ、予定通り動的配列をつつくよ。
という事でいつものサンプルプログラムをごらんあれ!


import std.stdio;

int main( char[][] ) {
    //初期状態
    int[] array;
    writeln( "動的配列の初期サイズは「", array.length, "」、", 
        "参照サイズは", array.sizeof, "です。" );
    
    //要素を1つ追加
    writeln( "動的配列に要素を1つ追加します。" );
    int value = 100;
    array.length = 1;
    array[ 0 ] = value;
    writeln( "追加された要素は", array[ 0 ], "です。" );
    writeln( "動的配列の初期サイズは「", array.length, "」、", 
        "参照サイズは", array.sizeof, "です。" );

    return 0;
}


さて、皆どう感じた?D言語って独特だと思わない?
動的配列を使用するには、長さを先に明示して要素を追加 しなくちゃならない。この辺はどの言語でも一緒なんだけど、 lengthプロパテを設定しながら それを行うというのは斬新ピヨ。新しい言語の息吹を感じるピヨね。 でもここで1つの疑問が生じるピヨ。今ある要素よりも小さい数字をlengthプロパティに代入したらどうなるんだろう?早速試してみるピヨ。


import std.stdio;

int main( char[][] ) {
    //初期状態
    int[] array;
    writeln( "動的配列の初期サイズは「", array.length, "」、", 
        "参照サイズは", array.sizeof, "です。" );
    
    //要素を1つ追加
    writeln( "動的配列に要素を1つ追加します。" );
    int value = 100;
    array.length = 1;
    array[ 0 ] = value;
    writeln( "追加された要素は", array[ 0 ], "です。" );
    writeln( "動的配列の初期サイズは「", array.length, "」、", 
        "参照サイズは", array.sizeof, "です。" );

    //100の要素を追加
    writeln( "動的配列の要素を100個に変更します。" );
    array.length = 100;
    array[] = value;
    writeln( "動的配列の初期サイズは「", array.length, "」、", 
        "参照サイズは", array.sizeof, "です。" );
    
    //要素数を減らすとどうなる?
    writeln( "動的配列の要素を半分に変更します。さてどうなるでしょうか?" );
    array.length = array.length / 2;
    writeln( "動的配列の初期サイズは「", array.length, "」、", 
        "参照サイズは", array.sizeof, "です。" );
    return 0;
}
実行する前に皆でどうなるか予想してみよう。エラーが出るかな?それとも・・・
結果は実行してからのお楽しみにという事にしておくよ。
本当はもっと動的配列には機能があって嘴がむずむずするけど、 繰り返し構文を使わないとサンプルが書けないので後のお楽しみにしておくピヨ。
次は連想配列いくピヨ。とぉー。


バサバサバサバサバサバサバサバサバサ バサバサバサバサバサバサバサバサバサ今度は一日飛び続けないぞー

別窓 | D | コメント:0 | トラックバック:0 | ∧top | under∨
<<Dをつつく10−連想配列。貴方はプログラミングという言葉に何を連想しますか? | 無差別に技術をついばむ鳥 | 中の人の徒然草32>>

この記事のコメント

∧top | under∨

コメントの投稿

 

管理者だけに閲覧
 

この記事のトラックバック

∧top | under∨
| 無差別に技術をついばむ鳥 |