Wie kann ich mein uint8[] in Solidity in uint[] konvertieren? Ich habe eine Funktion, die uint[] erwartet, aber mein Array hat den Typ uint8[].
Da Sie nicht nur implizit oder explizit von uint8[] nach uint256[] konvertieren können, müssten Sie etwa so vorgehen:
contract array {
function conversion (uint8[] array8) returns(uint[] array256) {
for (uint i = 0 ; i < array8.length ; i++ ) {
array256[i] = array8[i];
}
return array256;
}
}
Vielleicht so etwas?
contract X {
uint8[] public arr8 = [3,4,5];
uint256[] public arr256;
function myFunc(uint[] _arr256) public {
arr256 = _arr256;
}
function proxyFunc(uint8[] _arr8) public {
uint[] memory _arr256 = new uint[](_arr8.length);
for (uint i = 0; i < _arr8.length; i++) {
_arr256[i] = uint256(_arr8[i]);
}
myFunc(_arr256);
}
}