簡體   English   中英

如何用Solidity操作Solidity結構?

[英]How to manipulate a Solidity struct with Solidity?

我正在編寫一個智能合約,其中我要在一個函數中創建一個對象(結構),然后要更改另一個函數中的屬性。 結構的一個屬性被添加到映射中,這就是我跟蹤它們的方式,但是即使我創建了一個函數來從映射中獲取結構的屬性,我仍然仍然無法弄清楚如何更改它們。

這是結構

struct Component {

    uint compID;
    string compManufacturer;
    string compDetails;
    address owner;
    address[] pastOwners;
    bool transfer;
}

這是一個函數的示例,我嘗試更改該結構中的值。

function transfer (address factory, uint id) public {

    address compad;
    address[] compowners;
    bool boolean;

    (,,, compad, compowners, boolean) = getComponent(id);

    require(component.transfer == true);

    component.owner = factory;
    pastOwners = pastOwners.push(factory);
}

函數getComponent返回結構中的所有內容,在這里我初始化一些局部變量來存儲所需的局部變量。 但是,我不確定以后要做什么,因為這樣局部變量似乎無用,而且如果我更改局部變量,更改將不會在實際對象中進行。 如果我錯了,請糾正我。 任何幫助表示贊賞。

假設您有一個映射,例如:

mapping(uint => Component) public components;

您可以這樣操作:

components[id].compDetails = "comp details";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM