3. Solidity智能合约struct类型

本小节讨论Solidity智能合约的struct类型,Struct是Solidity中的自定义类型。使用Solidity的关键struct进行自定义。

结构体内还可以再包含字符串,整型,映射,结构体等复杂类型,

先看以下实例

 

1. 基本的结构体

 struct Product{       

        uint productId;
        uint productValue;    

    }

2. 在Store中定义Product结构体

结构体通常需要定义在一个合约当中

contract Store{


    struct Product{
        
        uint productId;
        
        uint productValue;
    
    }
    
    

 

}

 

3. 构造结构体对象

 

contract Store{

    struct Product{
        
        uint productId;
        
        uint productValue;
    
    }

    function save() public {
        
        Product  memory product = Product(2,93);
   
    }
    

}

4. 结构体应用实例

4.1 将以下代码拷贝到http://remix.ethereum.org/中

 

contract Store{

    struct Product{
        
        uint productId;
        
        uint productValue;
    
    }
    
    mapping (uint=>Product) products;
    
    function save() public {
        
        Product  memory product = Product(2,93);
        
        products[120]=product;
        
    }

    function getPriceOfProductId(uint productId) public view returns (uint){
        
        return products[productId].productValue;
        
    }
 

}

4.2 编译并运行合约

编译并创建合约实例后,点击右下角的“save”后,在“getPriceOfProductId”右边输入120,再点击“getPriceOfProductId“后,右边出现93,则说明合约调用成功

3. Solidity智能合约struct类型_第1张图片

本节主要讨论了struct类型,最后一个实例涉及到mapping等知识点,请参考作者其他文章

 

关注公众号,并回复“区块链技术项目开发”,下载ppt和sol文件

 

 

 

 

你可能感兴趣的:(区块链项目实战,区块链技术实战,Solidity,区块链技术)