//숫자만 들어가는 array를 구현하세요. 그 array에서 2의 배수들만 출력하는 함수를 구현하세요.
//배열을 하나 더 만들면 상태변수가 하나 더 생긴다는 의미이고, 가스비가 든다
//생성한 배열에 숫자를 넣을 때마다 가스비가 또 발생한다
//로컬 변수에서는 push()가 적용되지 않는다 - push는 길이를 변경해주는 변수
function getNumbers2() public view returns(uint[] memory){
uint[] memory _odd = new uint[](10);
uint index;
for(uint i = 0; i < numbers.length; i++){
if(numbers[i] % 2 == 0){
_odd[index] = numbers[i];
index++;
}
}
return _odd;
}
지역변수는 일부 변수 선언과 함수가 다르게 적용된다.
push()가 동작하지 않는다.
같은 기능을 하려면 다르게 적용해줘야한다.
로컬변수는 싸다
고 생각해주면 된다.
따라서 변수의 길이를 변경해주는 값비싼
동작은 허용되지 않는다.
값싸다 - 휘발성, 명확하게 크기를 정해줘야하고, 동작이 끝나면 날라간다.
상태변수 : 지역변수 = 비싸다 : 싸다 = 가스비 발생한다 : 가스비가 발생하지 않는다 = 자유도가 높다 : 자유도가 높지 않다
상태를 저장할 수 있는 변수