Array.length 作为函数的键(稳固性)
Array.length as key for a function (solidity)
对于新手问题,我深表歉意,但我正在尝试学习编码,没有其他方法可以找到解决方案。我正在寻找一种方法来将唯一键添加到函数的结果中,这样我就可以在需要时引用同一函数的其他迭代。
请在下面找到代码。当我 运行 代码保持原样时,它一直要求用户输入一个值,而我正在寻找代码而不是询问用户而是使用从 gettid() 函数产生的值.
因为我显然是编码新手,所以我也乐于接受关于改进密钥标识符的建议(它需要是唯一的,虽然我的方法很简单,但它应该产生唯一的值)。
// SPDX 许可证标识符: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() 函数并将 return 值存储在临时 uint 中,然后将临时 uint 推送到数组。像这样:
// 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));
}}
对于新手问题,我深表歉意,但我正在尝试学习编码,没有其他方法可以找到解决方案。我正在寻找一种方法来将唯一键添加到函数的结果中,这样我就可以在需要时引用同一函数的其他迭代。
请在下面找到代码。当我 运行 代码保持原样时,它一直要求用户输入一个值,而我正在寻找代码而不是询问用户而是使用从 gettid() 函数产生的值.
因为我显然是编码新手,所以我也乐于接受关于改进密钥标识符的建议(它需要是唯一的,虽然我的方法很简单,但它应该产生唯一的值)。
// SPDX 许可证标识符: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() 函数并将 return 值存储在临时 uint 中,然后将临时 uint 推送到数组。像这样:
// 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));
}}