pragma solidity 0.8.21;
contract DiscoverData {
mapping(address user => UserInfo) public userInfo;
struct UserInfo {
uint favNumber;
string favString;
}
constructor() {
userInfo[msg.sender].favNumber = 4;
userInfo[msg.sender].favString = "code never lies";
}
function setData(uint number, string calldata favStr) external {
UserInfo storage user = userInfo[msg.sender];
user.favNumber = number;
user.favString = favStr;
}
function setData1(uint number, string calldata favStr) external {
userInfo[msg.sender].favNumber = number;
userInfo[msg.sender].favString = favStr;
}
function setData2(uint number, string memory favStr) external {
UserInfo storage user = userInfo[msg.sender];
user.favNumber = number;
user.favString = favStr;
}
function setData3(uint number, string memory favStr) external {
userInfo[msg.sender].favNumber = number;
userInfo[msg.sender].favString = favStr;
}
}
Oct 15, 2023, 2:03 AM
try to guess what function will cost less gas, then compile, set the storage first with a random one, then benchmark by confronting the gas cost
Oct 15, 2023, 2:04 AM