본문 바로가기

Dart

A tour of the Dart language 2탄 [keyword]

반응형

매일 퇴근 후 소소하게 공부하는 다트 문법 시간입니다. 이 글을 보시는 분들은 개발자님들 혹은 개발자를 꿈꾸시는 분들이 대다수시겠죠??

저는 1인분의 몫을 하는 개발자이고 싶어요 아직은 회사에서 0.5인분 하는 것 같습니다... 🥲 무럭무럭 성장하겠습니다. 

 

A basic Dart program

// Define a function.
void printInteger(int aNumber) {
  print('The number is $aNumber.'); // Print to console.
}

// This is where the app starts executing.
void main() {
  var number = 42; // Declare and initialize a variable.
  printInteger(number); // Call a function.
}

 

예제 코드에 있는 키워드 설명

// This is a comment.
A single-line comment. Dart also supports multi-line and document comments. For details, see Comments.

void
A special type that indicates a value that’s never used. Functions like printInteger() and main() that don’t explicitly return a value have the void return type.

int
Another type, indicating an integer. Some additional built-in types are String, List, and bool.

42
A number literal. Number literals are a kind of compile-time constant.

print()
A handy way to display output.

'...' (or "...")
A string literal.

$variableName (or ${expression})
String interpolation: including a variable or expression’s string equivalent inside of a string literal. For more information, see Strings.

main()
The special, required, top-level function where app execution starts. For more information, see The main() function.

var
A way to declare a variable without specifying its type. The type of this variable (int) is determined by its initial value (42).

 

다트를 배울 때 중요한 개념

・ 변수에 배치할 수 있는 모든 항목은 객체이며 모든 객체는 클래스의 인스턴스입니다. 숫자, 함수, 그리고 null까지도 객체입니다. null(sound null safety를 활성화한 경우) 모든 객체는 Object 클래스에서 상속됩니다. 

・ 다트는 비록 타입을 명시하는 것이 좋지만 다트는 타입을 유추할 수 있기 때문에 타입 annotations은 선택사항입니다. 

・ Dart 2.12버전부터는 Null safety가 활성화된 버전으로 변수에 null이 포함될 수 있다고 미리 선언하지 않으면 null을 포함할 수 없습니다. 방법은 변수의 유형 끝에 물음표(?)를 붙여서 변수를 null로 만들 수 있습니다. 하지만 식이 null로 평가되지 않지만 Dart가 동의하지 않는 경우 !를 추가하여 null이 아니라고 주장할 수 있습니다. 

・ 어떤 타입이든 허용된다고 명시적으로 말하려면 Object ?(null safety를 적용한 2.12 버전 이후일 경우) 유형을 사용합니다. 

・ 다트는 List<int>(정수 목록) 또는 List<Object>(모든 유형의 객체 목록)와 같은 Generic type을 지원합니다. 

・ 다트는 클래스나 객체에 연결된 함수(static 및 instance 메소드)뿐만 아니라 최상위 함수(메인)를 지원합니다. 함수 내에 함수를 만들 수도 있습니다. 

・ 마찬가지로 다트는 클래스나 객체에 연결된 변수(static 변수와 instance 변수)뿐만 아니라 최상위 변수를 지원합니다. 인스턴스(instance) 변수는 필드 또는 속성이라고도 합니다. 

・ 자바와 다르게 다트는 공개, 보호, 비공개 키워드를 가지고 있지 않습니다. 식별자가 (_)로 시작하는 경우 일반적인 private과 동일하며 같은 클래스에서만 접근가능합니다. 

・ 식별자는 문자 또는 밑줄(_)로 시작하고 그 뒤에 해당 문자와 숫자를 조합할 수 있습니다. 

・ 다트는 런타임 값을 갖는 식과 그렇지 않은 문을 모두 가지고 있습니다. 예를 들어 조건 expr1 : expr2의 값은 expr1 또는 expr2입니다. 값이 없는 if-else문과 비교해보세요. 문에는 종종 하나 이상의 식이 포함되지만 식에 직접 문을 포함할 수는 없습니다. 

・ 다트 툴은 경고와 오류 두 가지 문제를 보고할 수 있습니다. 경고는 코드가 작동하지 않을 수 있음을 나타내는 것일 뿐 프로그램 실행을 방해하지는 않습니다. 오류는 컴파일 시간 또는 런타임일 수 있습니다. 컴파일 타임 에러는 코드가 전혀 실행되지 못하게 합니다. 런타임 에러는 코드가 실행되는 동안 예외를 발생시킵니다. 

 

dart keywords

위의 단어들은 식별자로 사용하지 않아야 합니다. 그러나 위첨자로 표시된 키워드의 경우 식별자가 될 수 있습니다. 

위첨자1 : 문맥 키워드이며 특정 장소에서만 의미가 있습니다. 어디에서나 유효한 식별자입니다. 

위첨자2 : 기본제공 식별자. 대부분의 장소에서 유효한 식별자이지만class, typem import 접두사로 사용할 수 없습니다.  

위첨자3 : 비동기 지원과 관련된 제한된 예약어. await, yield는 asynchrony, synchrony 본문에서 식별자로 사용할 수 없습니다.

 

 

https://dart.dev/guides/language/language-tour

 

A tour of the Dart language

A tour of all the major Dart language features.

dart.dev

 

반응형