Below is the code
pragma solidity ^0.4.18;
contract Courses {
struct Instructor {
uint age;
string fName;
string lName;
}
mapping (address => Instructor) instructors; /// LINE 1
address[] public instructorAccts;
function setInstructor(address _address, uint _age, string _fName, string _lName) public {
Instructor storage instructor = instructors[_address]; /// LINE 2
instructor.age = _age; /// LINE 3
instructor.fName = _fName; /// LINE 4
instructor.lName = _lName; /// LINE 5
instructorAccts.push(_address) -1;
}
function getInstructors() view public returns(address[]) {
return instructorAccts;
}
function getInstructor(address _address) view public returns (uint, string, string) {
return (instructors[_address].age, instructors[_address].fName, instructors[_address].lName);
}
function countInstructors() view public returns (uint) {
return instructorAccts.length;
}
}
I know that in mapping , key value is used to fetch data value. So can anyone explain how LINE 2
helps copying value into _address
. Like it is var instructor = instructors[_address];
, so it means the structure stored at value _address
will be copied in struct instructor
of LHS. In line 3,4,5 we are copying values in struct instructor
so how those values will be copied at address _address
in instructors[_address]
?