1️⃣ 문자열 내 변수 삽입
Dart에서 문자열에 변수를 넣고 싶다면 변수명을 사용하면 된다.
void main() { String name = '홍길동'; print('안녕하세요, $name님!'); // 결과: 안녕하세요, 홍길동님! }
만약 중괄호 {}를 사용하면 표현식을 사용 가능
void main() { int a = 5; int b = 3; print('두 수의 합: ${a + b}'); // 결과: 두 수의 합: 8 }
2️⃣ var vs dynamic
void main() {
dynamic value = 'Hello'; // dynamic은 타입이 자유롭게 변할 수 있음
value = 10; // int로 변경 가능
print(value); // 결과: 10
var text = 'Dart'; // var은 처음 선언된 타입이 고정됨
// text = 10; // ❌ 오류 발생! (처음에 String으로 선언되었기 때문)
}
3️⃣ Null Safety (널 안정성)
Dart에서는 변수가 null을 가질 수 있는지 여부를 지정할 수 있다.
void main() {
String? name = '블랙핑크'; // nullable 변수
name = null; // ✅ 오류 없음 (null을 가질 수 있는 변수)
// print(name!); // ❌ 오류 발생! (null일 수도 있기 때문에)
}
만약 null이 아닐 거라고 확신한다면 !를 붙여서 사용
void main() {
String? name = 'Dart';
print(name!); // ✅ null이 아니므로 정상 출력
}
4️⃣ final vs const
- final: 실행 중에 값이 결정될 수 있음.
- const: 컴파일 시점에 값이 결정되어야 함.
void main() {
final DateTime now1 = DateTime.now(); // ✅ 실행 중에 값이 결정됨 (OK)
// const DateTime now2 = DateTime.now(); // ❌ 오류 발생! (컴파일 시점에 값을 알 수 없음)
}
5️⃣ ??= 연산자 (널 병합 할당)
변수가 null이면 값을 할당하는 연산자야!
void main() {
double? number = 4.0;
number ??= 3.0; // number가 null이면 3.0을 할당 (지금은 null이 아니므로 그대로 유지)
print(number); // 결과: 4.0
}
6️⃣ 타입 비교 (is, is!)
Dart에서는 is와 is! 키워드를 사용하여 타입을 확인할 수 있다.
void main() {
int number = 1;
print(number is int); // ✅ true (number는 int 타입)
print(number is String); // ❌ false (number는 String이 아님)
print(number is! double); // ✅ true (number는 double이 아님)
}
7️⃣ 반복문 (Loop)
Dart에서 for-in 문을 사용하여 리스트를 순회할 수 있다.
void main() {
List<int> numbers = [1, 2, 3, 4, 5];
int total = 0;
for (int number in numbers) {
total += number;
}
print(total); // 결과: 15
}
8️⃣ enum (열거형)
enum은 한정된 값만 사용할 수 있도록 도와줌
enum Status { approved, pending, rejected }
void main() {
Status status = Status.pending;
if (status == Status.approved) {
print('승인됨');
} else if (status == Status.pending) {
print('대기 중');
} else {
print('거절됨');
}
}
// 결과: 대기 중
9️⃣ 함수의 옵셔널 & 네임드 파라미터
✅ 옵셔널 파라미터 ([] 사용)
void greet(String name, [String? message]) {
print('안녕하세요, $name님! ${message ?? ''}');
}
void main() {
greet('철수'); // 결과: 안녕하세요, 철수님! // message 는 옵션이라 오류 안남
greet('영희', '반가워요!'); // 결과: 안녕하세요, 영희님! 반가워요!
}
✅ 네임드 파라미터 ({} 사용)
void introduce({required String name, int age = 20}) {
print('이름: $name, 나이: $age');
}
void main() {
introduce(name: '지수', age: 25); // 결과: 이름: 지수, 나이: 25
introduce(name: '로제'); // 결과: 이름: 로제, 나이: 20 (기본값 사용)
}
🔟 void (반환값 없는 함수)
void는 결과값을 반환하지 않는 함수
void sayHello() {
print('안녕하세요!');
}
void main() {
sayHello(); // 결과: 안녕하세요!
}
1️⃣1️⃣ typedef (타입 별칭)
typedef를 사용하면 함수 타입에 별칭을 붙인다.
typedef IntFunction = int Function(int, int);
int add(int a, int b) => a + b;
void main() {
IntFunction myFunction = add;
print(myFunction(3, 5)); // 결과: 8
}
계산기 사용시 유용
반응형
'Flutter > Dart' 카테고리의 다른 글
Dart의 Functional Programming 활용 (0) | 2025.03.27 |
---|---|
Dart OOP (Object Oriented Programming) (0) | 2025.03.27 |
Dart 클래스 classes (2) (0) | 2025.02.03 |
Dart 클래스 classes (1) (0) | 2025.02.03 |
함수 | Function (0) | 2025.02.03 |