목차
반응형
안녕하세요!
다트 언어의 기본 문법을 알아보겠습니다. 웹페이지에서 간편하게 문법을 연습할 수 있습니다.
다트 문법은 main() 함수가 진입점입니다.
void main() {
//여기에 작성
print("Hello, World!");
}
주석
- 주석은 코드에 달아주는 설명으로 실행에 영향을 주지 않음
- // : 한 줄 주석
- /* ... */ : 여러 줄 주석
- /// : 문서 주석(메서드나 클래스 위에 작성하면 dartdoc 같은 문서 생성 도구를 통해 문서를 자동으로 생성)
// 이건 주석
/**
* 이것 또한 주석
**/
/// 이것 역시 주석
문장
- 문장은 명령의 단위
- 문장 끝은 세미콜론( ; )으로 표시
void main() {
//여기에 작성
print("Hello, World!") // 에러!
print("Hi, Land!");
}
변수
- 변수는 데이터(값)을 담는 상자
- 변수 종류를 타입 또는 자료형
- 다트는 숫자나 문자열 같은 기본 변수 타입을 제공하며, 사용자가 직접 타입 정의 가능
- 다트가 제공하는 기본 타입
- int : 정수
- double : 실수(소수점)
- String : 문자열
- bool : 참 또는 거짓 값을 갖는 타입
- 변수명 앞에 타입을 선언하고, 변수명 뒤에 = 기호로 값을 할당
- 각 변수의 타입에 맞는 값을 할당해야 함
- 즉, int 타입에 문자열 타입을 할당 불가
문자열 타입
String name; //변수 선언
name = '홍길동'; //값 할당
bool 타입
bool a = true; //참(거짓은 flase)
bool a2 = i < 10; //i는 10보다 작다.
bool a3 = s.isEmpty;
int, double 타입
- 더 큰 자료형인 double 타입에 int 타입을 대입하는 자동 형변환은 다트에서 지원하지 않음
int i = 10; //정수 10
double d = 10.0; //실수 10.0
double c = i; //에러
num 타입
- num 타입은 int와 double 타입 모두 대입 가능
num a = 10; //정수 10
num b = 20.0 //실수 20.0
num c = a; //ok
c = b; //ok
값 재할당
- 변수에 담긴 값은 언제라도 다른 값으로 변경 가능
String s = 'hello';
s = 'world';
타입 추론
- 다트는 타입을 직접 명시하지 않고 var로 대체할 수 있는 타입 추론을 지원
var i = 100; //int 타입
var d = 100.1; //double 타입
var s = 'hello'; //문자열 타입
var s2 = "hello"; //문자열 타입
var b = true; //불리언 타입
var b2 = i < 10; //불리언 타입
var b3 = s.isEmpty; //불리언 타입
상수 final, const
- 변수는 값이 변경되어 의도치 않게 에러를 발생할 가능성이 있음
- 가급적으로 값이 변하지 않게 상수로 사용하는 것이 좋음
- 선언할 때, final, const 키워드를 제일 앞에 붙이면 값이 수정되지 않는 상수로 사용 가능
final String name = '홍길동';
const String name2 = '이순신;'
name = '임꺽정'; //에러
name2 = '왜구'; //에러
final name3 = '홍길동'; //타입을 생략하여 작성 가능
- final과 const의 차이점
- final은 실행중에 값이 결정되고, const는 컴파일 시 값이 결정됨
final finalTime = DateTime.now(); // 실행 중 시간이 결정되므로 실행 가능
const constTime = DateTime.now(); // error 발생, 컴파일 때에는 시간을 저장할 수 없음
산술 연산자
- + : 더하기
- - : 빼기
- * : 곱하기
- / : 나누기(double 타입 반환)
- ~/ : 몫(int 타입 반환)
- % : 나머지(int 타입 반환)
- assert() 함수는 계산 결과가 참인지 검사
- 다음 코드는 결과가 모두 참
assert(2 + 3 == 5);
assert(8 - 2 == 6);
assert(2 * 9 == 18);
assert(7 / 2 == 3.5);
assert(7 ~/ 2 == 3);
assert(7 % 2 == 1);
assert('hello' + ' world' == 'hello world');
증감 연산자
- 값을 1씩 증가시키거나 감소시키는 연산자로 후위 연산과 전위 연산이 있음
- 후위 연산 : [식]++, [식]-- (예 : a++, a--)
- 전위 연산 : ++[식], --[식] (예 : ++a, --a)
var num = 0;
print(num++); //나중에 계산하므로 0 출력
//num = 1
print(++num); //먼저 계산하므로 2 출력
//num = 2
비교 연산자
- == : 같다
- != : 다르다
- > : 더 크다
- < : 더 작다
- >= : 크거나 같다
- <= : 작거나 같다
- 다음 코드는 결과가 모두 참
assert(2 == 2);
assert(4 != 2);
assert(4 > 1);
assert(4 < 6);
assert(2 >= 2);
assert(2 <= 3);
논리 연산자
- && : 그리고
- || : 또는
- == : 같다
- ! : 부정
- != : 다르다
print(true && true); //true
print(true && false); //false
print(false && false); //false
print(true || true); //true
print(true || false); //true
print(false || false); //false
print(true == true); //true
print(true == false); //false
print(false == false); //true
print(true != true); //false
print(true != false); //true
print(false != false); //false
타입 검사
- is : 같은 타입이면 true
- is! : 다른 타입이면 true
int a = 10;
if(a is int) {
print('정수');
}
String b = 'hello';
if(b is! int) {
print('숫자가 아님')
}
형변환
- 형변환에는 as 키워드 사용
- 다른 타입끼리는 변환이 안되고, 더 상위 개념으로 변환 가능
var c = 30.5;
ind d = c as int; //에러, int와 double은 모두 num을 구현하는 타입이지만 서로는 관계가 없으므로 형변환 불가
double d = 30.5;
num n = d as num; //as num 생략 가능, 형변환 성공
반응형
'자기계발 > IT' 카테고리의 다른 글
[Flutter/플러터] 다트(Dart) 언어 함수와 메서드 알아보기 (4) | 2023.02.16 |
---|---|
[Flutter/플러터] 다트(Dart) 언어 함수 알아보기 (10) | 2023.02.16 |
[Flutter/플러터] 플러터 핫 리로드(Hot Reload) 알아보기 (60) | 2023.02.12 |
[Flutter/플러터] 안드로이드 스튜디오 실제 기기 연결하기 (13) | 2023.02.12 |
[Flutter/플러터] 안드로이드 스튜디오 에뮬레이터 한국어 설정하기 (14) | 2023.02.12 |