Development/Dart

Fast - Dart 2. 변수 (1)

Dev. Jkun 2023. 1. 10. 07:36
반응형

일단 다음 상황들로만 인지하는게 Fast 할 것 같다.

변수

// 명시적
int n = 7;
String url = 'jkun.net';
    
// 임의. 선언과 동시에 할당하는 데이터의 유형으로 판단.
var name = 'jkun';
    
// 여러가지 타입을 가질 수 있는 변수 (dynamic)
dynamic name; // Dynamic
var name; // 선언하면서 데이터가 할당되지 않았으므로 dynamic 유형
    
// API 나 JSON 데이터를 받아올 시에 유용하겠으나 type 검사를 해야하는 피곤한 코드량이
// 늘어날 수 도 있을 것 같다.

// 명시적이거나, var 키워드로 선언과 동시에 할당하는 변수는 같은 유형의 데이터로만 업데이트가 가능
// 다음 경우는 다이나믹 유형이므로 가능
var at;
at = 'jkun';
at = 7;
at = true;
  
// 다음은 선언과 동시에 String 형태의 데이터를 할당했으므로 불가능
var var_at = 'hello';
var_at = 7; // Error

// Final
// 한번만 값을 할당할 수 있으며, 변수 업데이트가 불가능하다. 거의 상수에 근접하다.
final String name = 'JKUN';
final String name;
name = 'JKUN';

// Dart 는 기본적으로 non-Nullable
// Nullable or non-Nullable
//// null 을 허용하지 않는다.
String name = 'JKUN';

//// null 을 허용한다.
//// 명시적으로 유형을 선언하는 뒤에 ? 키워드를 붙이면 null 이 들어올 수 도 있음을 알린다.
String? name;
name = 'jkun';
name = null;

Dart 스타일 가이드에서 권장하는 방식이라는데 그냥 그런줄 알기로 했다.

명시적으로 사용하는 경우는 클래스처럼 구조화(변수, 프로퍼티) 시키는 경우에 적용하고,
var 키워드는 함수나 메소드 내부에 지역변수 선언시에 사용.

이상적으로는 dynamic 형식 사용은  피하는게 좋겠지만, 가끔 JSON 유형의 데이터 처리시 사용될 수 있겠다.


String Interpolation (문자열 보간)

Shell Script 나 Javascript, PHP 등에서 유용하게 사용하는 방법인데, 다트에서도 다음과 같은 방식으로 사용할 수 있다.

// 직접출력
var myName = 'JKUN';
print('My Name is $myName');

// 연산이 필요한 경우
var myNum = 5;
print('My Number is ${ myNum + 2 }');

 

 

Fast - Dart 2. 변수 (2) / late

late 수식어로 포스팅을 추가적으로 한다. 생소한 것은 나누어서 보는게 더 기억과 이해가 수월했던 것 같다. late 는 final 이나 var 앞에 붙여주거나 변수 데이터 유형에 따라 붙여줄 수 있다. late fi

www.jkun.net

 

반응형