Solidity の最初の割り当て

目次

最初の質問

次のコード演習を完了してください

2番目の質問

まずはコードを見てください

質問に答える


最初の質問

次のコード演習を完了してください

簡単なスマート コントラクト セットを作成して取得し、学生番号の下 2 桁をコード セットの取得として使用してください。自分の学籍番号(下2桁)を設定し、自分の学籍番号(下2桁)を取得するということです。

// SPDX-License-Identifier:MIT
pragma solidity ^0.8.0;

contract Test1 {
    uint8 id;
    
    function set(uint8 _id) public {
        id = _id;
    }
     
    function get() public view returns(uint8){
        return id;
    }
} 

2番目の質問

まずはコードを見てください

// SPDX-License-Identifier:MIT
プラグマ Solidity ^0.8.0;

契約テスト1 {

    文字列名 = 'lyk';
    文字列名 = unicode'罗永康';
    
    関数変更(文字列メモリ_name) public {         name = _name;     関数     get() パブリック ビュー returns(文字列メモリ){         名前を返します。     関数     f(int _a) public pure returns(int){         _a++;         _a を返す;     }


     



    




質問に答える

1. 文字列の代入と定義で注意すべき点について話します。

2. 上記のどの機能がガスを消費するのか、どの機能がガスを消費しないのか、またその理由について話してください。

3. 純粋関数とビュー修正関数の違いは何ですか?

答え:

1. 文字列は参照データ型のため、関数のパラメータ(入力パラメータ、出力パラメータ)として使用する場合はメモリ上に指定する必要があります。

文字列が漢字として割り当てられている場合、ASCII では漢字を表現できないため、トランスコードに Unicode を使用する必要があります。漢字は 3 バイトに相当します

2. 上記の変更関数は、状態変数名が変更され、pure および view 修飾子が使用できないため、ガスを消費します。get 関数と f 関数は、pure 修飾子と view 修飾子が使用されるため、ガスを消費しません。

3. pure によって変更された関数は状態変数の読み取りや変更を行わず、ビューは状態変数の読み取りのみを行い、状態変数の変更は行いません。pure と view で変更された関数はガスを消費しません

おすすめ

転載: blog.csdn.net/weixin_62421736/article/details/131067294