반응형

앱 만들기 프로젝트/Dart 28

Dart - 4.9 Mixins

단순하게, 그냥 여러 클래스에서 재활용하기 위해서 만드는 것이라고 생각하면 편하다.mixin Strong {  final double strengthLevel = 1500;}mixin QuickRunner {  void runQuick() {    print("Ruuuuuuuuun");  }}mixin Tall {  final double height = 1.80;}이렇게 정의한다. 원래 class로 선언할 수 있지만, 버전이 바뀌면서 mixin이라고 명시적으로 선언해야 하는 것 같다.어떻게 쓰냐고?class Player with Strong, QuickRunner, Tall {  final Team team;  Player({    required this.team,  });}with으로 쓰면 된다.상..

Dart - 4.8 Inheritance(상속)

이번에는 Inheritance. 상속.python같은 다른 언어와 비슷하다고 하는데...사실 나는 코드를 직접 배워본 적이 없고 야매로 하는 사람이라 잘 몰랐다...Human이라는 이름을 갖는 class가 있다고 하자.class Human {  final String name;  Human(this.name);  void sayHello() {    print("Hi my name is $name");  }}이제 Player이라는 이름을 갖는 class를 만들 것이다.그런데, Player도 사람일테니 Human class를 그대로 가져오고 싶다.(상속)class Player extends Human {  final Team team;  Player({    required this.team,    req..

Dart - 4.7 Abstract Classes

Abstract Classes(추상화 클래스)란?'이 method 만들어!!!!!!!!!!' 라고 소리치는 역할을 한다.일단, 이렇게 선언한다.abstract class Human {  void walk();}이렇게 적으면 Human이라는 abstract class를 상속받는 친구들은 무조건 walk라는 void 형태의 함수가 있어야 한다고 강제한다.class Player extends Human {  String name;  XPLevel xp;  Team team;  // 변수 순서 안중요함.  Player({    required this.name,    required this.xp,    required this.team,  });  void walk() {    print('I\'m walki..

Dart - 4.6 Enums

내가 심심해서 만들고 있던 flutter 앱(gpt가 코딩을 다 해준다... 나는 하는 게 없음)에서 최근에 Enum을 사용했다.마침 이게 나오네.'enum'은 선택의 폭을 좁혀주는 역할을 한다.문자열로 쓰는게 아니다. 일종의 '변수' 선언 같다.enum Team { red, blue }enum XPLevel { beginner, medium, pro }이렇게 Team과 XPLevel의 이름을 갖는 enum을 만들었다고 하자.그러면, Player라는 이름을 갖는 class는 다음과 같이 된다.class Player {  String name;  // int xp;  XPLevel xp;  // String team;  Team team;  // 변수 순서 안중요함.  Player({    required..

Dart - 4.5 Cascade Notation

신기한 문법이지만, 간단해서 다음의 코드만 첨부한다.class Player {  String name;  int xp;  String team;  // 변수 순서 안중요함.  Player({    required this.name,    required this.xp,    required this.team,  });  void sayHello() {    print("Hi my name is $name");  }}void main() {  var me = Player(name: 'me', xp: 1200, team: 'blue');  // name, xp, team을 바꾸고 싶다면?  me.name = 'another';  me.xp = 1000;  me.team = 'red';  // 아래와 같이 쓸..

Dart - 4.3 Named Constructors

이제, class 객체를 일부 변수만 가져와서 intialize하는 방법을 알아보자.다음의 두 constructor들을 만들 것이다.xp = 0인 blue팀 player 생성 -> createBluePlayerxp = 0인 red팀 player 생성 -> createRedPlayerclass Player {  final String name;  // 아래처럼 한번에 선언할 수도 있다.  int xp, age;  String team;  // 변수 순서 안중요함.  Player(      {required this.name,      required this.xp,      required this.team,      required this.age});  // ':' 뒤 -> class initializ..

Dart - 4.2 Named Constructor Parameters

3.1과 완전히 동일하다.자세한 것들은 아래에 있는 링크에서 보자.https://want-to-work-life-balance.tistory.com/entry/Dart-31-Named-Parameters Dart - 3.1 Named Parameters일반적인 함수를 선언하려면...String sayHello(String name, int age, String country) {  return "Hello $name, you are $age, and you come from $country";}이 함수를 불러오려면...void main() {  print(sayHello('me', 12, 'korea'));}이렇게want-to-work-life-balance.tistory.com참고 코드를 남기자면, 다..

Dart - 4.1 Constructors(생성자)

이전 파트에서는 그냥 아무것도 변수를 받지 않는 class를 만들었다.그러면? 이번엔 변수를 받을 수 있는 class를 만들어 봐야지.class Player {  // late를 이용해서 변수 선언은 여기서 하지만 값은 나중에 받아온다고 하기.  late String name;  late final int xp;  // 여기에서 값을 받아오기. class 이름과 똑같아야 함.  // Constructor  Player(String name, int xp) {    this.name = name;    this.xp = xp;  }  void sayHello() {    print("Hi my name is $name");  }}late로 나중에 받아온다고 하고 Player 함수(class랑 동일해야 함)..

Dart - 4.0 Your First Dart Class

dart에서의 class는 어떤 문법을 가지고 있을까.단순하다.class Player {  String name = 'me';  // 아래와 같이 final 사용하면 수정 불가능함.  final int xp = 1500;}그리고... 위 클래스를 사용하려면 다음과 같이 사용하면 된다.void main() {  var player = Player();  print(player.name); // 출력 결과: me  player.name = 'another';  print(player.name); // 출력 결과: another  // 아래와 같이 수정 불가능.  player.xp = 1000;}수정할 수 있는 것과, 수정이 불가능한 변수가 있는 것도 확인했다.만약, class 안에 함수가 있을 경우...cl..

Dart - 3.5 Typedef

자료형에다가 '별명'(alias)를 붙여주는 것.주로 간단한 데이터의 alias를 만들때 사용한다.Listint> reverseListOfNumbers(Listint> list) {  var reversed = list.reversed;  // reversed를 쓰면 다시 list로 변환해줘야 한다...  return reversed.toList();}이렇게 되어 있는 것에서 List의 별명을 붙여주고 싶다면...typedef ListOfInts = Listint>;// List대신 ListOfInts 사용.ListOfInts reverseListOfNumbers2(ListOfInts list) {  var reversed = list.reversed;  return reversed.toList();}이..

반응형