반응형

DART 46

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();}이..

Dart - 3.4 QQ Operator(Null-aware operator)

다음 함수의 name에 null도 들어갈 수 있도록 하고 싶다.String CapitalizeName(String name) => name.toUpperCase();?를 붙여볼까?String CapitalizeName(String? name) => name.toUpperCase();toUpperCase가 에러라고 소리친다.당연하지. null을 어떻게 대문자로 만들어.그렇다면...name에 null이 들어오면 'ANON' 출력name이 null이 아니면 대문자로 변환하고 출력.// 해결하는 방법 1 (가장 긴 방법)String CapitalizeName2(String? name) {  if (name != null) {    return name.toUpperCase();  }  return 'ANON';..

Dart - 3.3 Optional Positional Parameters

// 3.2는 recap으로 복습이었다. 넘어가자!positional parameter인 상태로도 변수를 optional하게 받을 수 있도록 할 수 있다.* return값이 바로 나올 경우 fat arrow로 대체할 수 있다는 것을 3.0에서 배웠다.// 일반적인 함수 선언 방식String sayHello(String name, int age, String country)  => "Hello $name, you are $age, and you come from $country";이 함수는 무조건 'name, age, country'순서로 모든 변수를 입력해야 함수를 실행할 수 있다.이때, 'country'는 optional하게(필수적이지 않도록)하고 싶다면?대괄호를 씌워준다.?를 붙여서 nullable하..

반응형