Solidity-基本構文

Solidityソースファイルには、任意の数のコントラクト定義、インポートディレクティブ、およびプラグマディレクティブを含めることができます。

Solidityの簡単なソースファイルから始めましょう。以下はSolidityファイルの例です-

pragma solidity >=0.4.0 <0.6.0;
contract SimpleStorage {
   uint storedData;
   function set(uint x) public {
      storedData = x;
   }
   function get() public view returns (uint) {
      return storedData;
   }
}

プラグマ

最初の行は、ソースコードがSolidityバージョン0.4.0またはバージョン0.6.0までの機能を壊さないがそれを含まない新しいもの用に記述されていることを示すプラグマディレクティブです。

プラグマディレクティブは常にソースファイルに対してローカルであり、別のファイルをインポートする場合、そのファイルからのプラグマはインポートするファイルに自動的に適用されません。

したがって、バージョン0.4.0より前にコンパイルされず、バージョン0.5.0以降のコンパイラでも機能しないファイルのプラグマは、次のように記述されます。

pragma solidity ^0.4.0;

ここでは、^を使用して2番目の条件を追加します。

契約する

Solidityコントラクトは、Ethereumblockchainの特定のアドレスに存在するコード(その機能)とデータ(その状態)のコレクションです。

行uintstoredDataは、uint型のstoredDataと呼ばれる状態変数を宣言し、関数setおよびgetを使用して、変数の値を変更または取得できます。

ファイルのインポート

上記の例にはインポートステートメントはありませんが、SolidityはJavaScriptで使用できるものと非常によく似たインポートステートメントをサポートしています。

次のステートメントは、「filename」からすべてのグローバルシンボルをインポートします。

import "filename";

次の例では、メンバーが「filename」のすべてのグローバルシンボルである新しいグローバルシンボルsymbolNameを作成します。

import * as symbolName from "filename";

現在のファイルと同じディレクトリからファイルxをインポートするには、import "./x" asx;を使用します。import "x"をxとして使用する場合; 代わりに、グローバルな「インクルードディレクトリ」で別のファイルを参照できます。

予約キーワード

Solidityで予約されているキーワードは次のとおりです-

概要 後 エイリアス 適用する
自動 場合 キャッチ のコピー
デフォルト 定義する 最後の 不変
実装 に 列をなして しましょう
大きい 一致 可変 ヌル
の オーバーライド 部分的 約束する
参照 再配置可能 封印 のサイズ
静的 サポート スイッチ 試してみてください
typedef typeof 未チェック