Dart 프로그래밍-변수
변수는 값을 저장하는 "메모리의 명명 된 공간"입니다. 즉, 프로그램의 값에 대한 컨테이너 역할을합니다. 변수 이름을 식별자라고합니다. 다음은 식별자에 대한 명명 규칙입니다-
식별자는 키워드가 될 수 없습니다.
식별자에는 알파벳과 숫자가 포함될 수 있습니다.
식별자는 밑줄 (_) 및 달러 ($) 기호를 제외하고 공백과 특수 문자를 포함 할 수 없습니다.
변수 이름은 숫자로 시작할 수 없습니다.
유형 구문
변수는 사용하기 전에 선언해야합니다. Dart는 var 키워드를 사용하여 동일하게 만듭니다. 변수를 선언하는 구문은 다음과 같습니다.
var name = 'Smith';
dart의 모든 변수는 값을 포함하지 않고 값에 대한 참조를 저장합니다. name이라는 변수는 값이 "Smith"인 String 개체에 대한 참조를 포함합니다.
다트 지원 type-checking변수 이름 앞에 데이터 유형을 추가합니다. 유형 검사는 변수가 데이터 유형에 특정한 데이터 만 보유하도록합니다. 동일한 구문은 다음과 같습니다.
String name = 'Smith';
int num = 10;
다음 예를 고려하십시오-
void main() {
String name = 1;
}
위의 코드 조각은 변수에 할당 된 값이 변수의 데이터 유형과 일치하지 않기 때문에 경고를 발생시킵니다.
산출
Warning: A value of type 'String' cannot be assigned to a variable of type 'int'
초기화되지 않은 모든 변수는 초기 값이 null입니다. Dart는 모든 값을 객체로 간주하기 때문입니다. 다음 예제는 동일한 것을 보여줍니다-
void main() {
int num;
print(num);
}
산출
Null
동적 키워드
정적 유형없이 선언 된 변수는 암시 적으로 동적으로 선언됩니다. var 키워드 대신 dynamic 키워드를 사용하여 변수를 선언 할 수도 있습니다.
다음 예제는 동일한 내용을 보여줍니다.
void main() {
dynamic x = "tom";
print(x);
}
산출
tom
최종 및 Const
그만큼 final 과 const키워드는 상수를 선언하는 데 사용됩니다. Dart는 final 또는 const 키워드를 사용하여 선언 된 변수의 값을 수정하는 것을 방지합니다. 이러한 키워드는 변수의 데이터 유형과 함께 사용하거나var 예어.
그만큼 const키워드는 컴파일 타임 상수를 나타내는 데 사용됩니다. 다음을 사용하여 선언 된 변수const 키워드는 암시 적으로 최종적입니다.
구문 : 최종 키워드
final variable_name
또는
final data_type variable_name
구문 : const 키워드
const variable_name
또는
const data_type variable_name
예 – 최종 키워드
void main() {
final val1 = 12;
print(val1);
}
산출
12
예 – const 키워드
void main() {
const pi = 3.14;
const area = pi*12*12;
print("The output is ${area}");
}
위의 예는 두 개의 상수를 선언합니다. pi 과 area, 사용 const예어. 그만큼area 변수의 값은 컴파일 타임 상수입니다.
산출
The output is 452.15999999999997
Note − 만 const변수를 사용하여 컴파일 시간 상수를 계산할 수 있습니다. 컴파일 시간 상수는 컴파일 시간에 값이 결정되는 상수입니다.
예
Dart에서 선언 된 변수를 수정하려고하면 예외가 발생합니다. final또는 const 키워드. 아래 주어진 예는 같은 것을 설명합니다-
void main() {
final v1 = 12;
const v2 = 13;
v2 = 12;
}
위에 주어진 코드는 다음과 같은 오류를 발생시킵니다. output −
Unhandled exception:
cannot assign to final variable 'v2='.
NoSuchMethodError: cannot assign to final variable 'v2='
#0 NoSuchMethodError._throwNew (dart:core-patch/errors_patch.dart:178)
#1 main (file: Test.dart:5:3)
#2 _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:261)
#3 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:148)