[Flutter / Dart] Dart언어 기본공부(수정중)

2024. 12. 27. 12:45
void main() {
  // variable
  var name = "Doseo";
  
  print(name);
  
  var name2 = "Lee";
  
  print(name2);
  
  name = "Flutter";
  
  print(name);
  
}
void main() {
  // Int
  int number1 = 10;
  
  print(number1);
  
  int number2 = 15;
  
  print(number2);
  
  int number3 = -20;
    
  print(number3);
  
  print(number1 + number2);
  
  print(number1 - number2);
  
  print(number1 / number2);
  
  print(number1 * number2);
}
void main() {
  // 실수
  // Double
  double number1 = 2.5;
  double number2 = 0.5;
  
  print(number1 + number2);
  
  print(number1 - number2);
  
  print(number1 / number2);
  
  print(number1 * number2);
  
}
void main() {
  // 맞다 아니다
  // Boolean
  bool isTrue = true;
  bool isFalse = false;
  
  print(isTrue);
  print(isFalse);
  
}
void main() {
  // 글자 타입
  // String
  String name = "Lee";
  String name2 = "Doseo";
  
  print(name); // Lee
  print(name2); // Doseo
  print(name + name2); // LeeDoseo
  print(name + " " + name2); // Lee Doseo
  
  print("${name} ${name2}"); // Lee Doseo
  print("$name.runtimeType $name2"); // Lee.runtimeType Doseo
  print("${name.runtimeType} $name2");// String Doseo
  
  // var String
  var name3 = "문자";
  var number = 20;
  
  print(name3.runtimeType); // .runtimeType = 어떤 타입인지 알려줌 // String
}
void main() {
  // Dynamic
  // String이었던 것을 Int, Boolean타입으로 변경 가능함
  dynamic name = "Lee";
  
    print(name);
  
  dynamic number = 1;
  
    print(number);
  
  var name2 = "Doseo";
    
    print(name2);
      
  print(name.runtimeType);
  print(name2.runtimeType);
  
  name = 2;
  print(name.runtimeType);
}
void main() {
  // nullable - null이 될 수 있다.
  // non-nullable - null이 될 수 없다.
  // null = nil = 아무런 값이 없다.
  
  String name = "Lee";
  
    print(name);
  
//   name = null; = 오류 발생. null이 들어갈 수 없는 String타입인데 null을 넣어서 오류가 발생
//   String타입 or null이 들어갈 수 있는 타입으로 해야함
  
  String? name2 = "Doseo";
    print(name2);
  
  String name3 = "바보"
    print(name3!); // !를 붙이면 null이 들어갈 수 없다.
}
void main() {
  // final, const
  // 다른 값으로 변경할 수 없다.
  // 타입도 생략이 가능
  final String name = "Lee";
    print(name);
  
//   name = "Doseo";
  const /*String*/ name2 = "Doseo";
    print(name2);
}
void main() {
  // Datetime 시간과 날짜를 저장할 수 있는 타입
  DateTime now = DateTime.now();
  
    print(now);
  
  DateTime now2 = DateTime.now();
    
    print(now2);
  // now와 now2의 시간은 코드가 실행될 시점의 시간과 날짜를 보여주기 떄문에 다름.
  
  // final은 빌드 타임의 값을 몰라도 됨
  final DateTime now3 = DateTime.now();
  
    print(now3);
  
  // const는 빌드 타임의 값을 알고 있어야함
  const DateTime now4 = DateTime.now(); 
    
    print(now4);
}
// final과 const의 차이점
// 빌드 타임이란? 코드를 작성하는 순간의 값.
// const는 작성하는 순간을 모르고 실행될 떄의 값을 출력할때를 모르니까 실행이 불가능함.
void main() {
  // Operator
  int number = 2;
  
  print(number);
  print("------------------");
  
  print(number % 2); // 나머지가 0임
  print(number % 3); // 나머지가 2임
  
  print(number);
  print("------------------");
  
  number ++; // 1이 더해짐
  print(number); // 3
  
  number --; // 1이 뺴짐
  print(number); // 2
}
// 실수(double)도 가능함