| 초기화 위치 | 가변 여부 | |
|---|---|---|
| constant | 선언 시 초기화 필수 | x |
| immutable | constructor 에서 값 지정 필수 | x |
abstract contract MultiManagedAccess {
uint constant MANAGER_NUMBERS = 5; //초기화 필요
uint immutable BACKUP_MANAGER_NUMBERS; //초기화 x 선언만
...
constructor(address _owner, address[] memory _managers, uint _manager_numbers) {
require(_managers.length == _manager_numbers, "size unmatched");
BACKUP_MANAGER_NUMBERS = _manager_numbers; //constructor 에서 값 지정 필수
for(uint i=0; i<MANAGER_NUMBERS; i++) {
managers[i] = _managers[i];
}
}