[英]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.