1. Dart 연습

조현준·2022년 5월 28일
0

Flutter

목록 보기
1/7
post-thumbnail

Dart 연습 - Page

Dart String 문서

  1. 변수 학습
/// Copyright 2022. ⓒ DevStory All rights reserved.

main() {
  /// var : 처음 담은 값으로 자료형이 결정 됨
  var name = '철수';
  print(name); // 철수
  print(name.runtimeType); // string (문자)
  
  var age = 20;
  print(age); // 20
  print(age.runtimeType); // int (정수)
  
  
  print("="*20);
  
  
  /// String : 문자만 넣을 수 있음
  String address = '우리집';
  print(address); // 우리집
  
  // address = 1; // ⬅️ String 만 담을 수 있기 때문에 이 코드는 에러 발생
  
  address = '모두의 집';
  print(address); // 모두의 집
  
  
  print("="*20);
  
  
  /// String? : 문자 또는 비어있을 수 있음
  String? email; // ⬅️ 아무것도 안넣었으므로 비어있음
  print(email); // null ⬅️ 비어있음을 의미
  
  email = "a@a.com"; // 문자열 할당
  print(email); // a@a.com
  
  email = null; // 다시 비우기
  print(email); // null
  
  
  print("="*20);
  
  
  dynamic test = 'test';
  test = 123;
  
  /// final : 값을 재할당 할 수 없음
  final String phone = "010-0000-0000";
  print(phone); // 010-0000-0000
  // phone = "010-1111-1111"; // final 때문에 이 코드는 실행 불가능
}
  1. 조건 학습
void main() {
  // && : AND 연산자로 좌우 값이 모두 true일 때 전체를 true로 반환
  if (false && true) {
    print('&&는 하나라도 true가 아니면 실행이 안됩니다.');
  } else if (true && true) {
    print('&&는 양쪽 모두 true면 실행이 됩니다.');
  }
  
  // || : OR 연산자로 둘 중 하나만 true이면 전체를 true로 반환
  if (false || false) {
    print("||는 둘다 false면 실행이 안됩니다.");
  } else if (false || true) {
    print("||는 둘 중 하나라도 true면 실행이 됩니다.");
  }
  
  
  int temp = 15;
  bool isSummer = true;

  if (isSummer && temp < 10) { // 여름이면서 10도 미만입니까?
    print("여름 and 10도 미만");
  } else if (isSummer || temp < 10) { // 여름이거나 10도 미만입니까?
    print("여름 or 10도 미만");
  }
}
  1. 반복문 학습
void main() {
  // 과일 5개가 들어있는 배열의 내용을 모두 출력하려면 5번 print를 사용해야 합니다.
  List<String> fruits = ["딸기", "감", "배", "사과", "바나나"];
  print(fruits[0]);
  print(fruits[1]);
  print(fruits[2]);
  print(fruits[3]);
  print(fruits[4]);
  

  print("---- 반복문 ----");
  print("fruits.length : ${fruits.length}"); // 전체 배열의 개수

  // 반복문을 사용하면 과일의 개수에 상관없이 3줄만 입력하면 됩니다.
  for (int i = 0; i < fruits.length; i++) {
    print("$i : ${fruits[i]}"); // i가 0부터 fruits.length - 1까지로 변합니다.
  }
  
  
  print("---- for in 문 ----");
  
  // 참고로 for in문이라 불리는 다른 형태의 반복문도 있습니다.
  for (String name in fruits) {
    print(name); // fruits 배열의 원소를 차례대로 꺼냅니다.
  }
}
  1. 매개변수 학습
void main() {
 say("영희", "철수야 안녕?");
}

void say(String from, String message) {
  print("$from : $message"); // 영희 : 철수야 안녕?
}
  1. 매개변수 required 학습()
void main() {
  say(from: "영희");
  say(from: "영희", message: "안녕?");
  say(message: "안녕?", from: "영희"); // 이름을 지정하기 때문에 순서 상관이 전달 가능합니다.
}

// required 키워드가 있는 경우, 호출시 필수로 전달해야 합니다.
void say({required String from, String? message}) {
  print("$from : $message");
}
  1. 함수 return 학습
void main() {
  String name1 = getName1();
  String name2 = getName2();
  print(name1 + name2);
}

// "철수"를 return하는 함수를 화살표 함수를 써서 짧게 축약할 수 있습니다.
String getName1() => "철수";

String getName2() {
  return "영희";
}
  1. class 학습
void main() {
  // 인스턴스(instance) 만들기
  Bread bread1 = Bread('팥'); // 클래스의 생성자를 호출하여 인스턴스(instance)를 만듭니다.
  Bread bread2 = Bread('크림');
  
  // 속성 호출
  print(bread1.content); // 팥
  print(bread2.content); // 크림
  
  // 메소드 호출
  print(bread1.getDescription()); // 맛있는 팥빵입니다.
  print(bread2.getDescription()); // 맛있는 크림빵입니다.
}

class Bread {
  String? content; // 클래스 속 변수를 속성(property)라고 부릅니다.
  
  Bread(String core) { // 클래스명과 동일한 이 함수를 생성자(constructor)라고 부릅니다.
    content = core;
  }
  
  String getDescription() { // 클래스 속 함수를 메소드(method)라고 부릅니다.
    return "맛있는 $content빵입니다.";
  }
}
  1. 상속 예제
void main() {
  Bread bread = Bread();
  Cookie cookie = Cookie();
  
  print(bread.madeBy); // TousLesJours
  print(cookie.madeBy); // TousLesJours
}

// 빵 : TousLesJours를 상속받음(=변수와 함수를 그대로 전달받음)
class Bread extends TousLesJours {
 
}

// 쿠키 : TousLesJours를 상속받음(=변수와 함수를 그대로 전달받음)
class Cookie extends TousLesJours {
  
}

// 뚜레쥬르
class TousLesJours {
  String madeBy = "TousLesJours";
}

Dart 공식문서 URL

profile
WEB 개발자의 끄적끄적 개발일기

0개의 댓글