Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 10172
- 값삭제
- useState
- await
- 그래픽
- 탈출문자
- R 그래프
- 배열삭제
- 데이터분석
- 배열추가
- 백준 11718
- DataFrame
- barplot
- asynchronization
- react #회원가입 #비밀번호비교
- 값추가
- barplot in r
- 백준 10172
- vetor
- 백준
- 이스케이프시퀀스
- 버스분석
- getline
- 광명시버스분석
- plot in r
- R데이터형태
- setstate
- React
- 이용현황분석
- 그대로 출력하기
Archives
- Today
- Total
devlog_zz
[Dart] 2. Dart 문법 및 특징 본문
728x90
2. Dart 문법 및 특징
- 모든 변수는 객체 ( object ) 이다.
- 타입 어노테이션은 타입이 추론 가능할 경우 옵션이다. - type safe 한 언어이지만, 타입 추론이 가능한 언어이므로 선언시에 타입을 명시하지 않아도 된다.
- ex ) int number = 10 ; 명시적으로 타입 지정하지 않고 var number = 10 ; 으로 사용 가능
- var : 변수(mutable)
- final : 변하지 않는 값(immutable + 런타임 선언 가능)
- const : 변하지 않는 값(imutable + 컴파일 타임 선언)
- dynamic : 하나의 변수가 여러 타입으로 변경 가능하다. ⇒ 타입이 예상되지 않을 때
var name = "Kim";
name = 100;
// 에러 발생 var 변수는 String 타입 지정된 후에 int 타입 참조 불가
dynamic name = "Kim";
name = 100;
// 가능
- 제네릭 타입 지원
- main() 과 같은 최상위 함수 지원
- private 하려면 식별자 앞에 밑줄 _를 붙인다.
keyword
특별한 의미를 지니는 단어
1. 식별자
변수명, 함수명
내장 식별자는 클래스명, 타입명, prefix( import할 때 이름 )로 사용불가, 함수명으로는 사용 가능
내장 식별자 종류 : https://brunch.co.kr/@mystoryg/117
2. 키워드
특정 문맥 에서 특별한 의미를 가지는 단어 , 특정 문맥이 아닌 곳에서는 식별자로 사용 가능
- sync
- async
- hide
- on
- show
⇒ 특정 문맥에서는 특별한 의미, 즉 어떤 동작을 수행하는 역할을 하지만 그 외에서는 함수명이건 변수명이건 간에 사용 가능해야 한다.
bin>dart_application_1.dart
import 'package:dart_application_1/dartEx01.dart' as dartEx01;
import 'package:dart_application_1/dartEx01.dart' show TestA;
// TestA 클래스만 show 키워드를 통해 사용가능하도록
// => 특정 부분만 import 하라는 의미를 가지면서 함수명으로 사용 ( 키워드의 특징 만족 )
show(int a, int b) {
return a + b;
}
void main(List<String> arguments) {
var numberA = 10;
var numberB = 25;
var result = show(numberA, numberB);
dartEx01.printResult(result);
var test = TestA();
// var test = TestB(); 하면 오류 - 선택하지 않은 TestB 클래스를 사용하려고 해서
test.show();
}
lib> dartEx01.dart
printResult(int aNumber) {
print('The number is $aNumber.'); //print to console.
}
class TestA {
show() { // 클래스에 show()라는 멤버함수
print('TestA');
}
}
class TestB {
show() {
print('TestB');
}
}
Result
The number is 35.
TestA
3. 예약어
식별자로 사용할 수 없는 특별한 단어
비동기 지원 관련 예약어 : async, async*, sync* 로 표시된 함수의 바디에서는 식별자로 사용 불가
비동기/동기 함수 바디가 아닌 곳에서는 var await = 10; 사용 가능
but 비동기/동기 함수가 있는 바디에서 await를 변수명으로 사용하면 오류발생
타입
var name = "Kim";
var cnt = 10;
name = 100; // error
var 타입을 사용하여 타입을 지정하지 않고 명시적으로 사용 가능
But, 초기화된 타입 외의 다른 타입의 값을 가질 수 없다 .
dynamic name = 1000;
name = 'Kim';
or
Object name = 1000;
name = 'Kim';
dynamic 과 Object 는 타입 변경 가능하다.
var 사용 지양
var number ;
number = 10;
// 선언부에서 타입을 알 수 없으므로 var 사용 지양하는게 좋다.
num
num 타입 int, double 모두 참조 가능, int double은 서로 참조 불가
num a = 10;
int b = 20;
double c = 2.6;
a = b;
a = c;
b = c; //error
b = b; //error
const
const 는 컴파일 시점에 상수화
final 은 런타임에 상수화
get {
return 100;
}
final a = get();
const b = get(); // 에러 발생!
출처 : https://brunch.co.kr/brunchbook/dartforflutter 스터디하며 정리한 글입니다. 감사합니다.
728x90
'Front End > Flutter' 카테고리의 다른 글
[Dart] 6. 비동기 프로그래밍 (0) | 2022.05.20 |
---|---|
[Dart] 5. 상속, 접근 지정자, Getter Setter (0) | 2022.05.20 |
[Dart] 4. 조건문 반복문, 클래스, 생성자 (0) | 2022.05.20 |
[Dart] 3. 함수, 연산자 (0) | 2022.05.20 |
[Dart] 1. dart 기초 및 소개 (0) | 2022.05.20 |
Comments