I know what is difference between memory and calldata. But seeing that I ask this question I don't seem to understand deeply yet.
I ran into an error message as below, when I used 'calldata' as a data location for constructor input argument.
"Data location must be "storage" or "memory" for constructor parameter, but "calldata" was given."
But, in constructor, I just only read the value to allocate storage without any changes.
Like example below,
pragma solidity 0.8.10;
contract Example {
address theFirst;
constructor(address[] calldata _addressList) {
theFirst = _addressList[0];
}
}