10/29 화 - 심화문법
- Collection : 여러개 변수 묶어서 넣는법.
- List (순서 있는 값)
List<[타입]> [변수 이름] = [요소]; or var [변수 이름] = [요소]; 요소에 변동이 없다면 final이나 const로도 선언 가능
/ length 를 통해 요소의 개수
/ isEmpty 요소 비었으면 true, 요소 있다면 false
/ indexOf() 를 통해 특정 요소의 index 반환
/ add() 는 요소 하나만, addAll() 은 여러 요소 추가 가능
/ remove()로 요소 삭제, removeAt() 을 통해 Index삭제
/ clear() 통해 모든 요소 삭제
- Set (중복 허용하지 않는 값 집합, 순서가 없는)
Set<타입> [변수 이름] = {요소};
/요소 없는 set도 { }안을 비워서 만들 수 있음
/요소 변동이 있는 경우 var로 선언 - 타입 추론
/요소 변동 없는 경우 final, const로 선언
/같은 타입이 아닌경우 set대신 var로 -> object로 추론
/순서가 없기에 Index도 없다
/중복 자동으로 제거해줘서 제거하는 기능으로도 사용
/ length 를 통해 요소의 개수
/ isEmpty 요소 비었으면 true, 요소 있다면 false
/ isNotEmpty 반대
/ add() 는 요소 하나만, addAll() 은 여러 요소 추가 가능
/ remove()로 요소 삭제
/ contains() 을 통해 특정 요소가 있는지 True False
/containsAll() 을 통해 여러개 모두 포함되어 있는지 (and 개념)
- Map; 키 (Key) 와 값 (Value) 이 묶인 하나의 쌍을 묶어서 값
/var로 선언 - 타입 추론
/요소 변동 없는 경우 final, const로 선언 가능
/키와 값은 다른 타입 가능, 키는 키끼리, 값은 값끼리 같은 타입이어야 함 - 아니면 object로 추론
/키는 중복x Index와 같이 고유함, 값은 중복 가능
/ length 를 통해 요소의 개수, 키:값 이 한 요소
/ isEmpty 요소 비었으면 true, 요소 있다면 false
/[변수 이름][[키 이름]] 으로 값을 검색, 없으면 null
/[변수 이름][[키 이름]] = [값];으로 수정,추가 가능
/remove()로 요소 삭제, removeat은 사용x
/containsKey() 통해 특정요소 확인 true false
/keys로 key만 따로 뽑아낼수 있음
/values로 값만 따로 뽑아낼 수 있음 - 중복된 값 모두 출력됨
- 열거형 : enum [열거형 이름] {요소}
/한줄로도 여러줄로도 열거 가능
/열거형 이름.요소 통해서 값에 접근
/switch문으로 각각 값에 접근, 다룰 수 있음
/if문으로도 똑같이 다룰 수 있지만 열거형+switch특히 상성이 잘 맞음
/요소.index 통해 순서 알 수 있음
/열거형이름.values 통해 모든 요소값 알 수 있음
ㄴindex 사용 가능
/***Set과 완전히 다름.
List | set (집합) | enum (집합) | |
값 추가 제거 | 가능 | 가능 add,addAll,remove | 불가능 |
중복 가능 | 불가능 | 가능 - 자동제거 | 불가능 오류 |
순서 | 있음 | 없음 | 있음 |
Index | 있음 | 없음 | 있음 |
[ ] | { } | { } |
- *함수 : 특정 작업을 수행
/[반환 타입] [함수 이름]([매개변수 타입] [매개변수 이름]) { return [반환값]; }
리턴타입 함수명(파라미터) {
명령어들
}
/ 한줄로 표현 가능한 경우 return 대신 => 사용 가능
/ 함수 선언 후 함수 이름을 가지고 호출
/void main() { … }에서 main함수는 프로그램 실행을 위한 최상위 함수
/return이 없을때 void를 사용. void를 쓰지 않아도 return이 없다면 void로 타입추론
/cf. main함수의 형제 함수 List<String> - 명령 프롬프트에서 사용
/*함수를 사용하면 패턴 비슷한 코드들 반복 줄이고 코드 효율성이 높아짐
- *제네릭 : 함수에서 확장, 일반화하여 다양한 타입 지원. 제네릭 함수 와 제네릭 클래스
/[타입 파라미터] [함수 이름]<타입 파라미터>([매개변수]) { … }
/한글자로 보통 T나 E를 많이 사용
/T 전달받은 타입으로 리턴하겠다. - 어떨때는 inst, 어떨때는 String 입력받은 타입으로 리턴해서 제네릭
/getFirstNumber, getFirstWord와 같이 비슷할때 int, String등 타입에 의존하지 않고 타입으로 묶어서 getFirstElement로 사용가능
/List<E> Set<E> Map<E> 각각 제네릭. E에 여러 파라미터 들어올 수 있음
T getFirstElement<T>(List<T> list) { return list[0]; } void main() { var numbers = [0, 1, 2, 3]; print(getFirstElement(numbers)); // 0 var words = ['a', 'b', 'c']; print(getFirstElement(words)); // a }
-> T getFirstElement<T> (List<T> list = numbers ) { ... } 로 작동했음
Cf. 문자열에서 ‘ ‘까지 출력하고 싶다면 print( " \' a \' " );
Cf. { ... } 안에 있으면 지역변수, 밖에 있으면 전역변수
'공부 일기 > TIL' 카테고리의 다른 글
Flutter 창업반 3주차 TIL1 - 예외처리, 오류 (0) | 2024.11.08 |
---|---|
Flutter 창업반 2주차 TIL5 - Dart 프로그래밍 복습 (1) | 2024.11.01 |
Flutter 창업반 2주차 TIL4 - 객체지향 프로그래밍 (0) | 2024.11.01 |
Flutter 창업반 2주차 TIL3 - 함수형 프로그래밍과 Dart (0) | 2024.11.01 |
Flutter 창업반 2주차 TIL1 - Dart 기본문법 (0) | 2024.11.01 |