数组.长度是功能的关键(坚固性)



我为新手问题道歉,但是我正在尝试学习编码,并且没有其他找到解决方案的方法。我正在寻找一种方法,有一个唯一的键添加到一个函数的结果,所以我可以有同一函数的其他迭代引用它,如果需要的话。

请查看下面的代码。当我运行代码时,它一直要求用户输入一个值,而我正在寻找代码不要求用户,而是使用从gettid()函数产生的值。

因为我显然是非常新的编码,所以我也开放的建议,以改善关键标识符(它需要是唯一的,虽然我的方法很简单,它应该产生唯一的值)。

//SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

{合同例子

struct Input{
uint256 gettid;
string title1;
string title2;
string title3;
string title4;
string title5;
}
Input[] public inputsArray;
function gettid() public view returns(uint256) {
return inputsArray.length;
}
function addinput(
uint256 _gettid,
string memory _title1,
string memory _title2,
string memory _title3,
string memory _title4,
string memory _title5

) public {
inputsArray.push(Thread(_gettid, _title1, _title2, _title3, _title4, _title5));
}}

您可以调用gettid()函数并将返回值存储在临时int中,然后将临时int压入数组。像这样:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract example{
struct Input{
uint256 gettid;
string title1;
string title2;
string title3;
string title4;
string title5;
}
Input[] public inputsArray;
function gettid() public view returns(uint256) {
return inputsArray.length;
}
function addinput(
string memory _title1,
string memory _title2,
string memory _title3,
string memory _title4,
string memory _title5

) public {
uint256 _nextId = gettid();
inputsArray.push(Thread(_nextId, _title1, _title2, _title3, _title4, _title5));
}}