목차
1. main 함수와 print()
Dart 프로그램은 main() 함수에서 실행이 시작된다.
print() 함수를 이용해 선언한 변수를 출력할 수 있다.
그리고 코드 마지막에 ;(세미콜론)을 넣어준다.
void main() {
print("Hello, Dart!");
}
2. 주석
한줄 주석은 // 을 사용하면 된다.
여러줄 주석은 /* */ 을 사용
void main() {
/*
여러 줄 주석을 사용할 수 있습니다.
이 부분은 실행되지 않습니다.
*/
print("Hello, Dart!"); // 출력: Hello, Dart!
}
2. var 변수 만들기
var로 자료형을 만들면
자동으로 자료형을 알맞게 선언해 준다.
한 번 타입이 정해지면 변경할 수 없다.
void main() {
var name = "Dart"; // String으로 추론됨
var age = 25; // int로 추론됨
print(name); // Dart
print(age); // 25
// age = "twenty"; // 오류: age는 int로 결정되었기 때문에 다른 타입을 할당할 수 없음
}
3. 기본 자료형과 명시적 타입 지정
명시적으로 자료형을 선언할 수도 있다.
- int
- double
- String
- bool
- dynamic - 모든 타입을 저장 가능
- late <자료형> - 나중에 초기화 가능
- <자료형>? - null을 가질 수 있음
void main() {
int age = 25;
print("Age: $age"); // 출력: Age: 25
double pi = 3.14;
print("Pi: $pi"); // 출력: Pi: 3.14
String name = "Dart";
print("Hello, $name!"); // 출력: Hello, Dart!
bool isActive = true;
print("Is Active? $isActive"); // 출력: Is Active? true
dynamic value = "Hello";
print("Dynamic Value: $value"); // 출력: Dynamic Value: Hello
value = 42;
print("Updated Dynamic Value: $value"); // 출력: Updated Dynamic Value: 42
late String greeting;
greeting = "Good Morning!";
print("Greeting: $greeting"); // 출력: Greeting: Good Morning!
int? nullableNumber;
print("Nullable Number: $nullableNumber"); // 출력: Nullable Number: null
nullableNumber = 100;
print("Updated Nullable Number: $nullableNumber"); // 출력: Updated Nullable Number: 100
}
4. List
4.1. 변수 선언
List<T> 형식으로 선언
List<int> numbers = [1, 2, 3, 4, 5];
4.2. 값 추가
값 추가 : add()
numbers.add(6); // 요소 추가
4.3. 조회
값 추출 : numbers[0]
print(numbers[0]); // 첫 번째 요소: 10
print(numbers[2]); // 세 번째 요소: 30
값 범위 추출 : numbers.sublist(start, end)
List<int> subNumbers = numbers.sublist(1, 4); // 인덱스 1부터 3까지 추출 (4는 포함되지 않음)
조건에 맞게 필터링 : numbers.where((변수) => 조건).toList()
List<int> greaterThan25 = numbers.where((num) => num > 25).toList();
4.4. 삭제
특정 값 삭제 numbers.remove(값)
numbers.remove(3); // 값 3 삭제
특정 인덱스 값 삭제 : numbers.removeAt(인덱스)
numbers.removeAt(2); // 인덱스 2 (값 30) 삭제
특정 조건을 만족하는 값 삭제 : numbers.removeWhere((변수) => 조건)
numbers.removeWhere((num) => num < 20); // 20보다 작은 값 삭제
리스트 비우기 numers.clear()
numbers.clear(); // 모든 요소 삭제
4.5. 수정
특정 인덱스의 값 수정 : = 연산자로
numbers[1] = 25; // 인덱스 1의 값을 25로 변경
여러개 값 한번에 수정 : numbers.replaceRange(start, end, [변할 값])
numbers.replaceRange(1, 3, [8, 9]); // 인덱스 1~2를 8, 9로 변경 (3은 포함X)
5. Map
5.1. 변수 선언
선언 방법 : Map<key, value>
Map<String, int> scores = {
"Alice": 90,
"Bob": 85,
"Charlie": 95
};
빈 map 생성
map<String, String> emptyMap = Map();
5.2. 값 추가 및 수정
새로운 키값이면 추가하고,
같은 키값이 있으면 수정한다.
Map<String, int> scores = {};
scores["Alice"] = 90; // 키-값 추가
scores["Bob"] = 85;
5.3. 조회
조회 : []
존재 여부 확인: containsKey()
Map<String, int> scores = {"Alice": 90, "Bob": 85};
print(scores["Alice"]); // 조회
print(scores["Charlie"]); // 조회시 없으면 null
print(scores.containsKey("Alice")); // 존재 여부 확인, 존재하면 true
모든 key값 가져오기 : keys()
print(scores.keys); // 출력: (Alice, Bob)
모든 value 값 가져오기 : value()
print(scores.values); // 출력: (90, 85)
5.3. 삭제
특정 값 삭제 : remove()
모든 값 삭제: clear()
Map<String, int> scores = {"Alice": 90, "Bob": 85, "Charlie": 95};
scores.remove("Bob"); // Bob 삭제
scores.clear() // 모든 값 삭제
5.4. 반복문 사용
변수에서 바로 반복문을 사용할 수도 있다.
forEach((key, value) {반복문 내용...})
Map<String, int> scores = {"Alice": 90, "Bob": 85};
scores.forEach((key, value) {
print("$key의 점수: $value");
});
물론 for - in 방식으로 사용할 수도 있다.
for (var key in scores.keys) {
print("$key: ${scores[key]}");
}
5.6. 자료형 변환
map - > list : toList()
Map<String, int> scores = {"Alice": 90, "Bob": 85, "Charlie": 95};
List<String> keysList = scores.keys.toList(); // 키 리스트 변환
List<int> valuesList = scores.values.toList(); // 값 리스트 변환
list -> map : fromIterables()
List<String> names = ["Alice", "Bob", "Charlie"];
List<int> scores = [90, 85, 95];
Map<String, int> nameToScore = Map.fromIterables(names, scores);
5.7. 필터링
where 함수를 사용
entries를 사용함, entries에 value가 들어있음
var highScores = scores.entries.where((entry) => entry.value >= 90);
6. Set
6.1. 변수 선언
Set<T> : 중복을 허용하지 않는 리스트
Set<String> uniqueNames = {"Alice", "Bob", "Charlie", "Alice"};
빈 Set 선언
Set<int> emptySet = Set();
6.2. 값 추가
단일 값 : .add()
여러개 값 : .addAll()
numbers.add(4); // 단일 값 추가
numbers.addAll([5, 6, 7]); // 여러 개 값 추가
6.3. 조회
특정 값 존재 여부 확인 : contains()
Set<int> numbers = {10, 20, 30, 40};
print(numbers.contains(20)); // 존재 여부 확인
print(numbers.length); // 크기 확인
6.4. 삭제
값 삭제 : remove()
전체 값 삭제 : clear()
Set<String> fruits = {"Apple", "Banana", "Cherry"};
fruits.remove("Banana"); // 특정 값 삭제
fruits.clear(); // 모든 값 삭제
6.5. 연산
합집합: union()
교집합: intersection()
차집합: difference()
Set<int> setA = {1, 2, 3};
Set<int> setB = {3, 4, 5};
Set<int> unionSet = setA.union(setB); // 합집합
Set<int> intersectionSet = setA.intersection(setB); // 교집합
Set<int> differenceSet = setA.difference(setB); // 차집합
'flutter' 카테고리의 다른 글
[flutter] dart 언어 - 비동기 프로그래밍 (5) (0) | 2025.02.23 |
---|---|
[flutter] dart 언어 - 함수 (4) (0) | 2025.02.22 |
[flutter] dart 언어 - 조건문 & 반복문 (3) (0) | 2025.02.22 |
[flutter] 환경 세팅 (1) (0) | 2025.02.22 |