(日本語訳) Chain Castle – Lesson 1 Chapter 4

Libra
Libra Move言語
スポンサーリンク

Chatper 4 変数バインディングとデータ型

変数バインディング

変数バインディングは、後の利用のために、値を変数にバインディングすることです。

Rustの様にMoveはlet variable: variable type;のフォーマットでletを変数バインディングに使います。例えば次の様にです。

let x: u64;

変数バインディングの後、=で変数をイニシャライズできます。例えば次の様に。

x = 5;

変数は全て処理の初めにバインドされなければならないことに注意してください。つまり、全てのletは初めの方に書かれなければならないのです。そうしないとコードブロックの中に書かれたlet行はコンパイルエラーを引き起こします。

データ型

現在のところ、Moveは次のデータ型をサポートしています。

  • ブール型(boolean)
  • 64ビット符号なし整数(uint64)
  • アドレス(address)
  • バイト配列(bytes)
  • 構造体(struct)
  • リソース(resource)これはMove独自のデータ型です。

boolean型のデータはboolとして、uint64型はu64、address型はaddress、byte型はbytearrayとして宣言される必要があります。例えば変数を次の様に定義できます。

main() {
    //変数バインディング
    let a: u64;
    let b: bool;
    let c: address;
    let d: bytearray;
    //初期化
    a = 1;
    b = true;
    c = 0x0;
    d = h "123abc";
    return;
}

また、次の様にして、resouceやstructを定義できます。

module Test {
    resource NonEmpty1 {
        f1: u64,
        f2: bool
    }
    struct Empty1 {}
    resource Empty2 {}
    resource NonEmpty2 {
        f1: bool,
        f2: u64
    }
}

ここで、f1やf2は変数名です。

Moveは自動的に変数を初期化できないので、初期化なしの変数を使ってはいけないことに注意してください。

実習

城のシリアルナンバーは、8桁の数値です。そこで、私たちはランダムに生成されたシリアルナンバーを8桁の数に制限するために剰余演算子(%)を使います。
そのまえに、シリアルナンバーの数値の表示に必要なSerialDigitsと呼ぶ変数を用意しましょう。これがこの演習のメインタスクです。
main()プロセスの中で、SerialDigitsをu64として宣言し、それを8で初期化してください。

Move Castle
タイトルとURLをコピーしました