'ref'와 'out' 키워드는 메서드에 매개변수를 전달할 때 사용되며, 변수의 참조를 직접 전달한다. 두 키워드는 비슷하지만 사용 방식에 차이가 있다.
1. ref
메서드에 변수를 참조로 전달할 때 사용한다. 이를 사용하면 메서드 내에서 매개변수의 값을 변경할 수 있으며 ( C++ 포인터, call by reference, 주소값 전달과 비슷한 기능), 변경된 값이 원래의 변수에 반영된다. 'ref'를 사용하려면 메서드를 호출하기 전에 변수가 초기화되어 있어야 한다.
void Modify(ref int value)
{
value += 10;
}
int num = 5;
Modify(ref num);
Debug.Log(num); // 출력: 15
2. out
'out' 키워드도 메서드에 변수를 참조로 전달할 때 사용하지만, 주로 메서드에서 출력 값을 반환할 목적으로 사용된다. 'out' 매개변수는 메서드 내에서 반드시 할당되어야 하며, 초기화되지 않은 상태로 메서드에 전달될 수 있다. 이는 메서드가 매개변수의 초기 값을 무시하고, 새로운 값을 설정한다는 것을 의미한다.
void GetValues(out int a, out int b)
{
a = 5;
b = 10;
}
int x, y;
GetValues(out x, out y);
Debug.Log(x); // 출력: 5
Debug.Log(y); // 출력: 10
'ref'와 'out'은 특히 여러 값을 반환하거나, 상태를 업데이트 하는데 유용하게 사용할 수 있다.
'게임개발 > 스터디' 카테고리의 다른 글
[스터디] 부동소수점 오차가 나는 이유 (0) | 2024.05.11 |
---|---|
[스터디] 개발 시 편의 기능 (0) | 2024.05.07 |
[스터디] 해시 테이블 자료구조 정리 (0) | 2024.05.05 |
[스터디] MVC / MVP / MVVM 나만의 재재재복습 (0) | 2024.04.30 |
[스터디] 제네릭 Generic 이란? (0) | 2024.04.17 |