Flutter(Dart 포함)

1. 기본기 1

본투비곰손 2023. 8. 30. 22:13
728x90

출력 하기

void main() {
  print('Hello World')
}

변수 선언

void main() {
//variable
  var name = '문자';
  print(name);
  name = '글자';
  print(name)
  var name = '숫자' // 동일이름의 변수 선언 불가!!!
}

변수 타입

void main() {
  //정수
  //interger
  int number1 = 10;
  print(number1);
}
void main() {
  //실수
  //double
  double number1 = 2.5;
  print(number1);
}
void main() {
  // 논리 타입(참,거짓)
  //Boolean
  bool isTrue = true;
  print(isTrue);
  bool isFalse = false;
}
void main() {
  // 문자 타입
  //String
  String name1 = '철수';
  String name2 = '영희';
  print(name1);
  print(name2);
  print(name1+name2);// 문자 타입을 더하면 철수영희 와 같이 출력 된다.
  print('${name1} ${name2}')// 와 같은 방법으로 사용 할 수 있다.
}
void main() {
  // var String
  var name3 = '철수'; // 오른쪽 값으로 타입을 유추한다.
  var number = 13;
  print(name3);
  print(number);
  print(name3.runtimeType) // 실행 될때의 변수의 타입 확인 
}
//타입을 사용해서 변수 선언하는 것이 좋다.
void main() {
  dynamic name = '문자';
  print(name);
  dynamic number = 5;
  print(number);
  //var 과 유사하지만 차이점이 있음
  var name2 = '글자';
  name = 5; // dynamic로 선언한 변수는 타입 변환 가능
  name2 = 4; // var로 선언한 변수는 타입 변환 불가
}
void main() {
  //nullable - null이 될 수 있다.
  //non-nullable - null이 될 수 없다.
  // null - 아무런 값도 없다.
  String name = '문자';
  print(name);
  name = null; // String 타입은 null 불가로 오류 발생
  String? name2 = '글자';
  print(name2);
  name2 = null; // 변수 선언시 ?을 입력하면 null 선언 가능
  //반대로 null값이 아님을 나타내려면 ! 를 사용하면 된다.
  print(name2!);
}

final과 const는 상수를 선언하는 공통점이 있다.

void main(){
  final String name = '철수'; // 값을 변경할 수 없다.
  print(name);
  
  const String name1 = '영희'; // 동일하게 값을 변경할 수 없다.
  print(name1); 
}
void main(){
  DateTime now = DateTime.now(); // 변수가 선언된 시점을 기록
  print(now);
  DateTime now2 = DateTime.now();// 변수가 선언된 시점을 기록
  print(now2);
  //now와 now2는 서로 다르다.
}

final과 const는 아래와 같은 차이점이 있다.

void main(){
  final DateTime now = DateTime.now(); // 작성하는 시점의 시간을 알지 못해도 사용 가능
  print(now);
  const DateTime now2 = DateTime.now();// 작성하는 시점의 시간을 알지 못하면 사용 불가
}

Operator(연산자)

void main(){
  int number = 2;
  print(number);
  print(number+2);
  print(number-2);
  print(number*2);
  print(number/2);
  print(number%2); // 나머지 구하기
  
  number ++;// 증감연산자
  number --;
  print(number);
  
  double number1 = 4.0;
  number1 +=1;
  number1 -=1;
  number1 *=2;
  number1 /=2;
}
void main(){
  double? number = 4.0  // ?를 입력하여 null을 변수로 넣을 수 있다.
  number = 2.0;
  number = null;
  print (number);
  number ??=3.0; // number이 null이면 3으로 변경해라 라는 의미
  prnit(number); // 3이 출력
}

비교 연산자

void main(){
  int number1 = 1;
  int number2 = 2;
  
  print(number1 > number2); // false
  print(number1 == number2); // false
  print(number1 < number2); // true
  print(number1 <= number2); // true
  print(number1 >= number2); // false
  print(number1 != number2); // true
}
void main(){
  int number1 = 1;
  print(number1 is int); // true
  print(number1 is String); // false
  
  print(number1 is! int); // false
  print(number1 is! String); // true
}
void main(){
  // && = and
  // || = or
  bool result = 12 > 10 && 1 > 0;
  print(result);// true 둘다 만족해야 true
  bool result2 = 12 > 10 && 1 < 0;
  print(result2);// false
  
  bool result3 = 12 > 10 || 1 < 0;
  print(result3);// true 둘중에 하나만 만족해도 true
  bool result4 = 12 > 10 || 1 > 0;
  print(result4);// true 둘중에 하나만 만족해도 true
  
  bool result5 = 12 < 10 || 0 > 1;
  print(result5); // false 둘 다 틀리기때문에 false
}

List

void main(){
  List<String> name = ['철수', '영희', '영수', '민수']; // 숫자가 들어가면 에러 발생
  List<int> number = [1,2,3,4,5]; // 문자가 들어 가면 에러 발생
  
  //index
  print(name[0]); // '철수' 출력
  print(name.length); //길이(갯수) 구하기
  name.add('민지'); // 추가
  name.remove('민지'); // 삭제
  print(name.indexOf('영수')); '영수'가 몇번째인지 확인
}

Map(Key:Value)

void main(){
  Map<String,String> dictionary = {
    'Harry Potter' : '해리포터',
    'Ron Weasley' : '론 위즐리',
    'Hermione Granger'  : '헤르미온느 그레인저'
  };
  print(dictionary);
  
  Map<String, bool> isHarryPotter = {
    'Harry Porter' : true,
    'Ron Weasley' : true,
    'Ironman' : false
  };
  isHarryPotter.addAll({
    'Spiderman' : false
  }); // Key : Value 를 추가
  print(isHarryPotter['Ironman']); //Key에 해당되는 Value값을 출력한다.
  isHarryPotter['Hulk'] = false; // allAll()과 동일하게 Key : Value 를 추가
  isHarryPotter['Spriderman'] = true; // Value값을 변경할 수 있다.
  isHarryPotter.remove('Harry Potter'); // Key값을 지우면 모두 지워진다.
  print(isHarryPotter.keys); //Key값들만 출력
  print(isHarryPotter.values); // Value값들만 출력
}

Set (중복 값이 들어 갈 수 없는 List)

void main(){
  final Set<String> names = {
    'Code Factory',
    'Flutter',
    'name',
    'Flutter'
  };
  
  print(names); // {Code Factory, Flutter, name} 가 출력된다.
  names.add('Harry Potter'); //추가
  names.remove('name'); //삭제
  print(names.contains('Flutter')) // 값이 있는지 확인
}
728x90