Эта функция твердости:
function findSupplierByName(string supplierName) public view returns (address id, string name) {
for (uint idx = 0; idx < supplierAddresses.length; idx++) {
address supplierAddress = supplierAddresses[idx];
var supplier = suppliers[supplierAddress];
if (keccak256(supplier.name) == keccak256(supplierName)) {
return (
supplier.id,
supplier.name
);
}
}
revert();
}
Это верно ? Или я должен просто удалить revert(); оператор, чтобы эта функция возвращала 0 для адреса и "" для имени?
Я думаю, вы имели в виду revert(), если функция НЕ находит данные. Чтобы поддерживать согласованность с тем, что делает функция, я бы вернул ее (address(0), "")
, а вызывающая функция выбрала, что делать, когда она получает нулевое значение адреса.
Если функция ВСЕГДА должна находить результат, вы можете изменить ее revert()
на assert(supplier.id != address(0))
.
Стеф Хейенрат