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

그만큼 finalconst키워드는 상수를 선언하는 데 사용됩니다. 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}"); 
}

위의 예는 두 개의 상수를 선언합니다. piarea, 사용 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)