본문 바로가기

반응형

Flutter/Dart

(11)
Dart 3.0 핵심 정리 🔵 1. Records (레코드) - 여러 값 한 번에 묶는 기능 추가됨기존에는 여러 개의 값을 반환하려면 List, Map, class 같은 거 써야 했음.이제 Records(레코드) 기능이 추가돼서 더 간편하게 가능해짐!(String, int) getUser() { return ('Alice', 25);}void main() { var user = getUser(); print(user.$1); // Alice print(user.$2); // 25}✅ 이름 지정 가능해짐({String name, int age}) getUser() { return (name: 'Alice', age: 25);}void main() { var user = getUser(); print(user.name)..
🚀 dart 비동기 (async & await) 1️⃣ Future - 미래에 받아올 값Future는 나중에 값이 도착하는 데이터를 의미ex) 서버 요청이나 일정 시간이 지나야 실행되는 작업에서 사용 void main() { Future name = Future.value('haroi'); addNumbers(1, 1); addNumbers(2, 2);} void addNumbers(int number1, int number2) async { print('🛠️ 계산 시작 : $number1 + $number2'); await Future.delayed(Duration(seconds:2), () { print('✅ 계산 완료 : $number1 + $number2 = ${number1 + number2}'); }); pr..
Dart의 Functional Programming 활용 1️⃣ List의 asMap(), toSet() void main() { List blackPink = ['로제', '지수', '리사', '제니', '제니']; print(blackPink); print(blackPink.asMap()); print(blackPink.toSet()); Map blackPinkMap = blackPink.asMap(); print(blackPinkMap.keys); print(blackPinkMap.values);}📝 실행 결과[로제, 지수, 리사, 제니, 제니]{0: 로제, 1: 지수, 2: 리사, 3: 제니, 4: 제니}{로제, 지수, 리사, 제니}(0, 1, 2, 3, 4)(로제, 지수, 리사, 제니, 제니) 📌 asMap()을 사용하면 인..
Dart OOP (Object Oriented Programming) 🔹 1. 클래스와 인스턴스클래스를 정의하면 해당 클래스를 기반으로 인스턴스를 생성할 수 있다.class Idol { final String name; final List members; // 기본 생성자 Idol(this.name, this.members);}void main() { Idol blackpink = Idol('블랙핑크', ['지수', '제니', '리사', '로제']); print(blackpink.name); // 블랙핑크 출력}🔹 2. 생성자(Constructor)생성자는 객체를 만들 때 필요한 초기 값을 설정class Idol { final String name; final List members; // 기본 생성자 Idol(this.name, this.member..
Dart 핵심 개념 한눈에 정리! (변수, 타입, Nullable, Enum, Loop 등) 1️⃣ 문자열 내 변수 삽입Dart에서 문자열에 변수를 넣고 싶다면 변수명을 사용하면 된다.void main() { String name = '홍길동'; print('안녕하세요, $name님!'); // 결과: 안녕하세요, 홍길동님! } 만약 중괄호 {}를 사용하면 표현식을 사용 가능void main() { int a = 5; int b = 3; print('두 수의 합: ${a + b}'); // 결과: 두 수의 합: 8 } 2️⃣ var vs dynamicvoid main() { dynamic value = 'Hello'; // dynamic은 타입이 자유롭게 변할 수 있음 value = 10; // int로 변경 가능 print(value); // 결과: 10 var text = 'Dart'..
Dart 클래스 classes (2) 🎯 1. Cascade Notation (.. 연산자)✅ 같은 객체에 대해 여러 개의 프로퍼티를 연속으로 변경할 때 사용✅ ..을 이용하면 객체를 계속 참조하면서 값을 변경할 수 있음✅ 예제 코드class Player { String name; int age; String description; Player({ required this.name, required this.age, required this.description, }); void showInfo() { print("이름: $name, 나이: $age, 설명: $description"); }}void main() { var jisoung = Player(name: "jisoung", age: 17, des..
Dart 클래스 classes (1) ✅ 클래스 속성 정의하기클래스의 속성(property)을 선언할 때는 타입을 반드시 명시해야 된다(함수 내에서 타입을 명시하지 않아도 되는 var과는 다르다.) class Player { final String name = 'nico'; // String 타입의 property 정의 int xp = 1500;}void main() { // class의 instance, 즉 object 생성! var player = Player(); // `new`를 사용하지 않아도 된다! print(player.name); // "nico"}✅ this는 웬만하면 사용하지 않는다!Dart에서는 this를 잘 사용하지 않아.하지만 지역 변수와 클래스의 속성 이름이 겹칠 경우 사용!class Player { St..
함수 | Function Dart 함수 개념 정리Dart는 객체 지향 언어이므로 함수도 객체이며, Function 타입을 가진다.즉, 함수를 변수에 저장하거나 다른 함수의 인자로 전달할 수 있다. 1. 함수 정의 방법✅ 기본 함수String sayHello(String name) { return "Hello $name, nice to meet you.";}String sayHello(String name) → name을 매개변수로 받는 함수return을 이용해 문자열을 반환✅ 단축 함수 (화살표 함수)String sayHello(String name) => "Hello $name, nice to meet you.";한 줄짜리 함수라면 {}와 return 없이 =>를 사용할 수 있음2. Named Parameters (이름 있는..