int
型の変数x
を宣言する例を示します。int
の場合、0
が格納されます。 valType()
では基本型であるuintの変数を代入した場合の挙動を試験しています。(1)の行では、変数a
に代入された「10」という値そのものがコピーされて変数b
に代入されます(値渡し)。その結果b
の値が(2)で変更されても、元の変数a
の内容には影響を与えません。その結果この関数の実行結果は10
が示されます。refType()
では参照型である配列の変数を代入した場合の挙動を試験しています。配列の変数は参照型であり、参照型の変数には「値を格納しているメモリ上のアドレス(参照)」が格納されています。そのため(3)で配列x
をy
に代入していますが、ここで実際に行われていることは、変数x
の値を格納しているメモリ上のアドレスを変数y
にセットしていることになります(参照渡し)。そのためこの時点でx
とy
は同じ場所を見ていることになり、(4)でy
の内容を変えると同時に変数x
の内容も変更されることになります。結果、この関数の実行結果は[500, 600]
が示されます。int●
句を用いて宣言します。ここで「●」は変数のビット長の指定であり8~256までの8の倍数が指定されます。例えばint8は8ビット符号付整数型を表わします(-128 ~ 127)。数字が省略されint
と指定された場合はint256
を意味します。またデフォルト値は0です。uint●
句を用いて宣言します。ここで「●」は変数のビット長の指定であり8~256までの8の倍数が指定されます。例えばuint8は8ビット符号なし整数型を表わします(0 ~ 255)。数字が省略されuint
と指定された場合はuint256を意味します。またデフォルト値は0です。bool
句により宣言します。true
(真)またはfalse
(偽)の2値のみが格納可能です。デフォルト値はfalse
になります。 address
句で宣言します。balance
属性が規定されています。例えば下記の例の用にbalance属性を用いると指定のアドレスが保有するetherの量が取得可能です。send
関数が規定されています。<address>.send(x);
により指定のアドレス<address>
にx
weiのetherを送金することができます。以下に実際に送金を行う簡単なコントラクトのコードを示します。T
、長さk
の配列はT[k]
で宣言します。一方可変長配列の場合はT[]
とします。length
属性が規定されています。可変長配列では下記の例のようにlength属性を指定することで配列要素を削除することも可能です。