Я попытался присвоить структуру в функции, и встретил ошибку компиляции.Как я знаю, в смысле локальные переменные, такие как Area sz_area, являются типом хранилища, в то время как я путаюсь с тем, почему 'Area ("SuZhou", "270027")' является типом памяти?
конечно, если я использовалОбласть памяти sz_area = Area ("SuZhou", "270027"); ', все будет хорошо работать.Но я просто хочу знать причину.
Спасибо в любом случае.
pragma solidity ^0.4.25;
contract SturctDemo{
struct Area{
bytes32 name;
bytes6 code;
}
struct Administrator{
uint id;
bytes32 name;
bytes32 account;
bytes32 passwd;
mapping(uint=>Administrator)subordinateByIndex;
Area adminArea;
}
// Ok
Area nk_area = Area("nk_area", "100001");
function initByPosition() returns(uint, bytes32, bytes32, bytes32, bytes32, bytes6){
// Compile error, TypeError: Type struct SturctDemo.Area memory is not implicitly convertible to expected type struct SturctDemo.Area storage pointer.
// As I know, in solidity, local vars like Area sz_area is storage type,
// while my confusition is why 'Area("SuZhou", "270027")' is a memrory type?
Area sz_area = Area("SuZhou", "270027");
// more
// ...
}
}