전체 글
[Flutter Dart] 클래스 - 프라이빗 변수 ' _ ' 키워드
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. 📌 프라이빗 변수같은 파일에서만 접근 가능한 변수 (*일반적으로 다른언어에서는 프라이빗 변수는 클래스 내부에서만 사용하는 변수를 칭한다.)_ 기호로 시작해 선언할 수 있다. //person.dartclass Person{ String _name; Person(this.name);}//main.dartvoid main(){ Person person = Person('제니'); //같은 파일이 아니기 때문에 접근이 불가능하다. (person.dart, main.dart) print(person._name);} #코드팩토리의플러터프로그래밍2판 #공부용
[Flutter Dart] 클래스 - 네임드 생성자
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. 📌 네임드 생성자클래스를 생성하는 여러 방법을 명시하고싶을 때 사용한다.생성자의 이름을 지정할 수 있다.(네임드 파라미터와 비슷한 개념이다)형식클래스명.생성자명(){}class Person{ final String name; final int age; //fromMap 이라는 이름으로 네임드생성자를 생성한 것 Person.fromMap(Map map) : this.name = map['name'], this.age = map['age']; void printInfo(){ print("이름: ${this.name}, 나이: ${this.age}"); ..
[Flutter Dart] 클래스 - 생성자
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. 📌 클래스변수와 메서드를 특정 클래스에 종속되게 묶어, 코드 관리를 용이하게한다.같은 기능의 중복 코딩없이 클래스를 활용하여 재사용이 용이하다.class Person{ //멤버변수 String name = "홍길동"; //클래스 void sayName(){ print(this.name); print(name); //클래스에 같은 이름의 속성이 하나만 존재한다면 this를 생략할 수 있다. }}int main(){ //사용. 인스턴스 생성. Person person1 = Person()}📌 클래스 - 생성자클래스 인스턴스를 생성할 때 호출되는 특정 메서드...
[Flutter Dart] 에러 try catch
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. 📌 try catchtry{}catch(e){}try{ //throw 키워드로 고의적으로 에러를 발생시킬 수 있음 throw Exception('에러');}catch(e){} #코드팩토리의플러터프로그래밍2판 #공부용
[Flutter Dart] 함수 형태 정의 typedef
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. 📌 함수의 시그니처를 정의하는 typedef함수의 시그니처 = 반환값 타입, 매개변수 개수와 타입typedef- 함수의 선언부를 정의하는 키워드이다.- 함수가 무슨 동작을 하는지에 대한 정의는 없다.typedef 시그니처명 = 반환형 Function(매개변수);typedef Operation = void Function(int x, int y); 시그니처에 맞는 함수를 값처럼 사용할 수 있다.시그니처를 일반적인 변수의 type처럼 사용가능하다. 함수를 값처럼 사용할 수 있게된다. typedef Operation = void Function(int x, int y);void add(int x, int y){}void su..
[Flutter Dart] 일회성 함수 (익명함수, 람다함수)
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. 📌 익명함수{}, 람다함수=>둘다 이름이 없는 함수, 일회성으로 사용익명함수에서 {}를 빼고 => 기호를 추가한 것이 람다함수일회성이 높은 로직을 사용할 때 유용 익명함수(매개변수){ 함수바디} 람다함수(= 람다식을 사용하는 익명함수)(매개변수) => 단 하나의 명령 #코드팩토리의플러터프로그래밍2판 #공부용
[Flutter Dart] 함수, 포지셔널 파라미터, 네임드 파라미터
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. 📌 함수포지셔널 파라미터 : 순서가 고정된 매개변수 - 입력된 순서대로 매개변수에 값이 지정된다. - default 값 지정: [ ] 기호 사용 네임드 파라미터 : 이름이 있는 매개변수 - 호출시 이름을 이용해 값을 입력한다. - 키와 값 형태로 매개변수를 입력하면 되므로 입력 순서는 중요하지 않다. - {} : 네임드 파라미터 지정 영역 - required 키워드를 사용 : 호출시 필수로 지정해야 하는 값 - default 값 지정시 required 키워드를 사용하지 않아도 된다. * 포지셔널과 네임드를 섞어쓰려면 포지셔널이 항상 앞에 와야한다. //포지셔널int add1(int a, int b){}arr1(1,2);..
[Flutter Dart] if, switch, for, while
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. 📌 ifC언어 와 동일if(){}else if{}else{}📌 switchenum과 함께 사용하면 유용하다.enum Status{ start, end}int main(){ Status status = Status.start; switch(status){ case Status.start: break; case Status.end: break; default: }}📌 forfor 항목 in 리스트: 패턴을 지원컬렉션의 모든값을 순회할 때 사용. 리스트의 각 값이 항목으로 전달되어서 순회된다.for(int i=0;i myList = [1,2,3];for(int i i..
[Flutter Dart] is 연산자 타입 비교
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. 📌 is 연산자 타입 비교해당 변수가 특정한 자료형인지 확인한다.변수 is 자료형변수 is! 자료형 int num1 = 1;print(num1 is int);print(num1 is String);print(num1 is! int);print(num1 is! String); #코드팩토리의플러터프로그래밍2판 #공부용
[Flutter Dart] 널 안정성
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. 📌 널 안정성// 자료형? : null을 가질 수 있는 변수임을 명시double? num1 = 1;// ?가 붙지 않은 자료형에는 null 저장 불가능double num2 = null; => 에러// ?? : 변수의 값이 null일때만 뒤의 명령어 실행되도록 함num1 ??= 3; //null 이 아니기 때문에 대입연산 실행안됨num1 = null;num1 ?? = 4; //null 이기 때문에 대입연산이 실행됨print(num1) => 4 1. ?: 널 타입 선언// 변수가 null을 가질 수 있음을 선언String? name; // name은 null일 수 있음String title; // tit..
[Flutter Dart] 컬렉션 Set
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. 📌 Set 타입중복 없는 값들의 집합유일함 보장Set 변수명//선언 - 중복된 '제니' 하나만 저장됨Set mySet = {'리사', '로제', '제니', '제니'}; //Set 포함여부 확인 (true, false 반환)mySet.contains('로제'); //Set -> List 로변환mySet.toList()//List -> Set으로 변환String myList = ['리사','리사'];Set.from(myList); => {리사} #코드팩토리의플러터프로그래밍2판 #공부용
[Flutter Dart] 컬렉션 Map
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. 📌 Map 타입Key-Value 값 저장순서를 보장하지 않는다.값의 빠른 조회를 위해 사용한다.Map 변수명//선언Map dict = { '제니' : '서울', // key : value '로제' : '미국', '로사' : '부산',};//key값으로 value값 조회dict['제니']//모든 key 값 반환 (Iterable형 반환)print(dict.keys) => (제니, 로제, 로사)//모든 value값 반환 (Iterable형 반환)print(dict.values) => (서울, 미국, 부산) #코드팩토리의플러터프로그래밍2판 #공부용
[Flutter Dart] 컬렉션 List
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. 📌 List- 순서를 기억한다.- 첫원소는 0, 마지막 원소는 -1로 지정한다.- 리스트에 넣을 타입을 사이에 명시한다.- 컬렉션 타입이다. 컬렉션 타입은 서로의 타입으로 자유롭게 형변환이 가능하다.//데이터 저장List myList = ['리사', '지수', '제니', '로제'];//값 조회myList[0]myList[-1]//길이 조회myList.length//값 추가myList.add('나나');//특정 조건에 맞는 값만 필터링 .where(함수)final newList1 = myList.where( (name) => name == '리사' || name == '지수', //리사 또는 지수 만 유지 )..
[Flutter Dart] 변수타입 (String, int, double, bool)
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. 📌 String, int, double, boolString name = '블랙핑크';int isInt = 10;double isDouble = 2.5;bool isTrue = true; #코드팩토리의플러터프로그래밍2판 #공부용
[Flutter Dart] const/final 키워드
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. 📌 const/final 키워드변수의 값을 처음 선언한 후 변경할 수 없도록 하는 키워드자료형 선언(var, dynamic, String ...) 앞에 사용한다.* const: 빌드 타임 상수 = 코드 실행전 값이 결정되는 변수* final: 런타임 상수 = 코드를 실행할 때 값이 결정되는 변수const String name2 = '로제'; //한번 선언이후 변경 불가능name2 = '제니'; //에러!final String name = "제니"; //한번 선언이후 변경 불가능name = '로제'; //에러! DateTime.now() 값을 const 키워드 변수에 사용한다면? 에러* DateTime.now()..
[Flutter Dart] dynamic 선언
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. 📌 dynamic 선언변수에 값이 들어가면 자동으로 타입을 추론초기 선언된 자료형과 다른 타입 값 저장 가능. 타입이 고정되지 않음.* var 선언은 자료형이 고정되어 변경 불가능dynamic name = "홍길동";name = 20; #코드팩토리의플러터프로그래밍2판 #공부용
[Flutter Dart] var 선언
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. 📌 var 선언변수에 값이 들어가면 자동으로 타입을 추론컴파일될 때 추론된 타입으로 var이 치환- 한번 추론된 타입이 고정된다.- var 키워드로 한번 유추된 자료형은 바꿀 수 없다.* dynamic 은 추론하는 것은 동일하지만 자료형을 바꿀 수 있다.var name = "홍길동"; //문자열 추론var age = 10; //정수 추론var weight = 42.4; //실수 추론//컴파일 될 때 추론된 타입으로 치환됨name = 10; //에러. 타입이 고정되므로 다른 자료형은 넣을 수 없음 #코드팩토리의플러터프로그래밍2판 #공부용
[Flutter Dart] 주석
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. 📌 주석///***/ /// // 한줄 주석/*** 여러 줄 주석*//// 슬레시 세개 주석/// DartDoc나 안드로이드 스튜디오 같은 IDE에서 문서(Documentation)으로 인식 #코드팩토리의플러터프로그래밍2판 #공부용
[Flutter Dart] 다트란?
코드팩토리의 플러터 프로그래밍 2판, Flutter in Action 책을 참고하여 공부용으로 작성한 게시글입니다. 다트구글이 개발2011년 10월 GOTO 콘퍼런스에서 공개웹에서 자바스크립트를 대체하기위해 등장웹 개발에 혼란을 가져온다는 여론을 극복하지 못하고 결국 다트 언어를 자바스크립트로 완전 컴파일 가능하게 만드는 데 그침자바스크립트를 대체하지는 못했지만 플러터의 인기에 힘입어 모바일 영역에서 다트 언어가 큰 각광을 받음 다트 장점UI를 제작하는 데 최적화자바스크립트로의 완전한 컴파일을 지원하는 덕분!객체 지향 언어이므로 재사용할 수 있는 UI 컴포넌트를 쉽게 구현함.렌더링 로직을 커스텀으로 구현할 수도 있음.프레임 사이의 애니메이션을 제어할 수도 있음.프레임워크의 모든 계층을 개발자에게 제공한..