Solidity-basic-syntax

提供:Dev Guides
移動先:案内検索

堅牢性-基本的な構文

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を使用して変数の値を変更または取得できます。

ファイルをインポートする

上記の例にはimportステートメントはありませんが、SolidityはJavaScriptで利用可能なimportステートメントに非常に類似したimportステートメントをサポートしています。

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

import "filename";

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

import * as symbolName from "filename";

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

予約済みキーワード

以下はSolidityの予約キーワードです-

abstract after alias apply
auto case catch copyof
default define final immutable
implements in inline let
macro match mutable null
of override partial promise
reference relocatable sealed sizeof
static supports switch try
typedef typeof unchecked