반응형

읏차, IT차 326

[Dart] List - reduce / List - fold

reduce의 특징은 파라미터가 2개가 들어간다. 예시 코드로 형태를 확인해보자(prev와 next 파라미터를 유의해서 보자) void main() { List numbers = [ 3, 5, 2, 1, 4, 7, 10 ]; final result = numbers.reduce((prev, next){ print('-------------'); print('previous : $prev'); print('next : $next'); print('total : ${prev + next}'); return prev + next; }); print(result); } 원리를 보면 previous 값과 next 값이 주어진 함수대로 더해져서 total 값으로 리턴해주게 되는데 다음 prev 값을 보면 이전의 t..

Flutter/Dart 문법 2023.03.23

[Dart] List/map에 where사용해보기(where로 필터링)

void main() { List idol = [ {'name': '민지', 'group': '뉴진스'}, {'name': '혜린', 'group': '뉴진스'}, {'name': 'RM', 'group': 'BTS'}, {'name': '뷔', 'group': 'BTS'}, {'name': '하니', 'group': '뉴진스'}, ]; print(idol); final newjeans = idol.where((x) => x['group'] == '뉴진스').toList(); final bts = idol.where((x) => x['group'] == 'BTS').toList(); print(newjeans); print(bts); } where로 조건을 걸고 List로 도출해 낼 수 있다.

Flutter/Dart 문법 2023.03.23

[Dart] map(List mapping, Map mapping, Set Mapping)

map은 하나의 형태에서 또 다른 형태의 것을 만들어 낼 수 있다. List Mapping void main() { List newjeans = ['민지', '하니', '다니엘', '혜린', '혜인']; final newNewjeans = newjeans.map((x){ return '뉴진스 $x'; }); print(newjeans); print(newNewjeans); } arrow함수로 표현해보면 final newNewjeans2 = newjeans.map((x) => '블랙핑크 $x'); print(newNewjeans2); map을 한번 통과하게 되면 List는 계속 새로운 List로 생성 된다. List로 받은 형태는 .map이 적용이 가능하다. Map mapping void main() { ..

Flutter/Dart 문법 2023.03.23

[Dart] Generic

Generic은 타입을 외부에서 받을 때 사용한다. class Lecture { final int id; final String name; Lecture(this.id, this name); } 이런 Class가 있다고 보면, Lecture은 class외부에서 생성자를 input으로 받게 되는데 타입은 사실 받기 어렵다. 이미 class내부에서 정의내렸기 때문이다. void main() { Lecture lecture1 = Lecture('123','lecture1'); // String이니까 잘 들어간다 } class Lecture { // 사이에 무엇을 넣어도 상관없는데 보통T넣는다. final T id; final String name; Lecture(this.id, this.name); } cla..

Flutter/Dart 문법 2023.03.22

[Dart] 인터페이스(abstract)

interface class의 구조를 강제하고 싶을 때 사용한다. class에서 선언하고 인스턴스로 만들지 않고 다른 클래스에서 사용한다. implements 키워드를 사용한다. 상속과 비슷하다 뭔 말인지 모르겠으니 형태를 직접 봐보자 abstract class IdolInterface { String name; IdolInterface(this.name); void sayName() // 메서드를 선언만하고 만들지는 않음 // 함수의 바디( {} ) 도 없어도 된다. } 쉽게 위처럼 빈 틀이 interface라고 생각하고 틀위에 구현하는 것은 다른 클래스에서 틀에 맞게 구현한다고 생각 위 인터페이스는 그야말로 틀(인스턴스로 만들 때 사용하면 안돼)이기 때문에 그 안에 어떤 값도 들어가면 안된다. 틀은 ..

Flutter/Dart 문법 2023.03.22

[Dart] Static

Static은 인스턴스에 귀속되지 않고 Class에 귀속된다. 일단 인스턴스는 현재 클래스에 속해있는 오브젝트라 할 수 있다. class Employee { //Class에 귀속. static String? building; //인스턴스에 귀속. String name; Employee( this.name, ); void printNameAndBuilding() { print('제 이름은 $name입니다 $building 건물에서 근무하고 있습니다.'); } static void printBuilding() { print('저는 $building 건물에서 근무중입니다.'); } } 위와 같은 코드를 작성했다고 하고 static인 building과 name이 어떻게 작용하는지 확인해보면 void main()..

Flutter/Dart 문법 2023.03.22

[Dart] 오버라이딩

메서드는 클래스 내부에 있는 함수 오버라이드: 덮어서 쓴다(우선 시 하다) 상속한 경우에만 오버라이드를 사용한다. void main() { TimesTwo tt = TimesTwo(2); print(tt.calculate()); } class TimesTwo { final int number; TimesTwo( this.number, ); int calculate() { // 이 메서드를 오버라이드 return number * 2; } } 위와 같이 number를 받아서 *2를 하는 메서드를 작성했고 오버라이드 하여 *4의 메서드를 상속받은 자식클래스에서 사용하고 싶다고 한다면 class TimesFour extends TimesTwo { TimesFour( int number, ) : super(num..

Flutter/Dart 문법 2023.03.22

[Dart] 상속

기본적인 클래스를 생성하자 void main() { print('--------------------'); Idol apink = Idol(name: '에이핑크', membersCount: 5); apink.sayName(); apink.sayMembersCount(); } class Idol{ String name; int membersCount; Idol({ // named파라미터로 생성 required this.name, required this.membersCount, }); void sayName(){ print('저는 ${this.name}입니다'); } void sayMembersCount(){ print('${this.name}은 ${this.membersCount}명의 멤버가 있습니다.'..

Flutter/Dart 문법 2023.03.22

[Dart] Class의 getter와 setter

getter는 데이터를 가져올 때 setter는 데이터를 설정할 때 사용 get getter 선언 class내에서 반환타입 get 이름 { return 반환인자 } **() 을 사용하지 않는다. {}만 사용한다. getter 사용 .을 이용하여 사용가능 ex void main() { Hansoom hansoom1 = Hansoom( '한숨팟', ['차', '밍', '똥', '똥철'] ); Hansoom hansoom2 = Hansoom( '한숨팟2', ['김', '정', '차', '오'] ); print(hansoom1.firstMemeber); // .을 이용하여 사용 } class Hansoom { String name; List members; Hansoom(this.name, this.member..

Flutter/Dart 문법 2023.03.22
반응형