반응형
플러터와 다른 프로그래밍 언어에서 지역 변수(Local Variable)는 존재합니다. 지역 변수는 특정 블록이나 함수 내에서 선언되어 그 범위 내에서만 유효한 변수를 의미합니다. 지역 변수는 글로벌 변수(Global Variable)나 인스턴스 변수와는 달리, 선언된 블록이나 함수가 끝나면 메모리에서 해제됩니다.
플러터에서 변수의 종류
1. 로컬 변수(Local Variable)
- 함수나 메서드 내부에서 선언된 변수로, 그 함수나 메서드가 끝나면 소멸합니다.
- 예제
void someFunction() {
int localVar = 5; // localVar는 someFunction 안에서만 유효합니다.
print(localVar);
}
void main() {
someFunction();
// print(localVar); // 오류: localVar는 main 함수에서 접근할 수 없습니다.
}
2. 글로벌 변수(Global Variable)
- 함수나 클래스 외부에서 선언된 변수로, 프로그램 전체에서 접근 가능합니다.
- 예제
int globalVar = 10; // 프로그램 전체에서 접근 가능
void someFunction() {
print(globalVar);
}
void main() {
print(globalVar);
someFunction();
}
3. 인스턴스 변수(Instance Variable)
- 클래스 내부에 선언된 변수로, 클래스의 인스턴스(객체)가 생성될 때마다 인스턴스마다 별도로 생성됩니다.
- 예제
class MyClass {
int instanceVar = 20; // 클래스의 인스턴스마다 생성되는 변수
void displayVar() {
print(instanceVar);
}
}
void main() {
MyClass obj1 = MyClass();
MyClass obj2 = MyClass();
obj1.displayVar(); // 출력: 20
obj2.displayVar(); // 출력: 20
}
4. 정적 변수(Static Variable)
- 클래스에 속하지만 클래스의 모든 인스턴스 간에 공유되는 변수입니다.
- 예제
class MyClass {
static int staticVar = 30; // 클래스의 모든 인스턴스 간에 공유되는 변수
void displayVar() {
print(staticVar);
}
}
void main() {
MyClass obj1 = MyClass();
MyClass obj2 = MyClass();
obj1.displayVar(); // 출력: 30
obj2.displayVar(); // 출력: 30
MyClass.staticVar = 50; // 정적 변수는 클래스 이름으로 접근 가능
obj1.displayVar(); // 출력: 50
obj2.displayVar(); // 출력: 50
}
지역 변수의 사용 예
void main() {
int globalVar = 1; // 글로벌 변수
void myFunction() {
int localVar = 2; // 지역 변수
print(localVar); // 출력: 2
print(globalVar); // 출력: 1
}
myFunction();
// print(localVar); // 오류: localVar는 main 함수에서 접근할 수 없습니다.
}
결론
지역 변수(Local Variable)는 함수나 블록 내부에서 선언되어 그 범위 내에서만 유효한 변수입니다.
이는 프로그램의 특정 부분에서만 데이터를 저장하고 사용하고자 할 때 매우 유용합니다.
글로벌 변수(Global Variable)와 인스턴스 변수(Instance Variable)와는 달리, 지역 변수는 메모리 사용을 효율적으로 관리할 수 있도록 도와줍니다.
플러터에서 변수의 적절한 사용은 코드의 가독성을 높이고 유지보수성을 향상시키는 데 중요한 역할을 합니다.
https://play.google.com/store/apps/details?id=com.maccrey.navi_diary_release
구글플레이 앱 배포의 시작! 비공개테스트 20명의 테스터모집을 위한 앱 "테스터 쉐어"
https://play.google.com/store/apps/details?id=com.maccrey.tester_share_release
카카오톡 오픈 채팅방
https://open.kakao.com/o/gsS8Jbzg
반응형
'Flutter > Flutter Programming' 카테고리의 다른 글
플러터에서 Scope 패키지 사용법과 옵션 (0) | 2024.06.19 |
---|---|
플러터 변수 범위: 로컬 변수 vs 파라미터 (심층 비교) (0) | 2024.06.19 |
플러터에서 HTTP패키지 사용법과 옵션 (0) | 2024.06.19 |
플러터에서 Dialog 사용법과 옵션 (0) | 2024.06.19 |
플러터에서 Provider 패키지 사용법과 옵션[상태관리] (0) | 2024.06.19 |