pragma solidity ^0.8.9;
contract MemoryToMemoryValueTypeAssignment {
// Declares a function that returns a uint
function getUInt() public returns (uint) {
// Declares a uint variable localVar1 and initializes it to 40
uint localVar1 = 40;
// Declares a uint variable localVar2 and initializes it to 80
uint localVar2 = 80;
// Assigns the value of localVar2 (80) to localVar1
localVar1 = localVar2;
// Assigns a new value of 100 to localVar2
localVar2 = 100;
// Returns the value of localVar1, which is now 80
// Because uint is a value type, assigning localVar2 to localVar1
// simply copied the value, not a reference. So later changing
// localVar2 does not impact the returned localVar1.
return localVar1;
}
}
//Deploy screenshot: