Solidity のコンストラクタはどのような役割を持っていますか？


test_1 と test_2 の違いがわかりません。（testMessageを呼び出すような関数を作成すると、両方とも同じように機能します）

[code]

    contract test_1 {
      string testMessage = "Hello,world!";
    }
    
    contract test_2 {
      string testMessage;
        constructor() {
          testMessage = "Hello,world!";
        }
    }
    
[/code]

先述した通り、testMessageを呼び出してみるとどちらも Hello, world がちゃんと表示されます。

[code]

    function getMessage() public view returns(string){
      return testMessage;
    }
    
[/code]

**実行結果:**

[code]

    Hello,world!
    
[/code]

コンストラクタが特別な意味を持っていることは知っていますが、それが具体的にどんな役割を持っているのかが分かりません。




以下のドキュメントにあるように、一度だけ実行されるものになります。

<https://solidity-jp.readthedocs.io/ja/latest/contracts.html>

> コントラクトが作られた時、constructor ( constructor キーワードで宣言されるファンクション)が一度だけ実行されます。

