본문 바로가기
CSE

[Flutter] DART 기본문법

by bartizan_ 2024. 2. 7.
728x90

 

  //변수
  var name = 'my code';
  print(name);
  name='flutter';
  print(name);
  
  int number1=10;
  print(number1);
  double number2 = 0.5;
  
  bool isTrue = true;
  bool isF = false;
  print(isTrue);
  
  String myname = '내이름';
  String myname2 = '성미니';
  
  print('${myname} ${myname2}');
  
  print('$myname');
  //var string 차이? var는 타입을 오른쪽 값으로 예상함.
  
  dynamic dyn  = 'fcseoul';
  print(dyn);
  dyn=2;
  //var 타입은 그 선언으로 무조건 픽스. 다이나믹은 ㄹㅇ 아무거나로 바꿀 수 있다.
  
  String? hey = null;
  //물음표를 붙이면 null값을 넣을 수 있다.
  //느낌표-> null없어야.
  String? ex2 = 'asdf';
  print(ex2!);
  
  //파이널 : 변수 값 선언하고 이후 변경 안된다.
  final String n = 'tjdals';
  //콘스트도 안된다.
  const String n2 = 'hihihihi';
  //둘의 차이?
  final n3 = 'hihih';
  
  final DateTime now = DateTime.now();//요걸 실행하는 순간에
  //const는 빌드 타임에 알아야한다.  파이널은 몰라도 돼
  //빌드타임 
  print(now);
  
  int count = 1;
  count ++;
  
  double? numex =4.0;
  print(numex);
  numex=null;
  numex ??= 3.0;//null이면 오른쪽 값으로 바꿔라 라는 의미래
  print(numex);
  
  int isEx =1;
  print(isEx is int);
  print(isEx is! int);

	//List
  List<String> bp = ['jenny','jisoo'];
  List<int> num=[1,2,3];
  print(bp);
  
  //index => 0부터 시작
  print(bp[0]);
  print(bp.length);
  bp.add('seongmin');
  print(bp);
  print(bp.indexOf('seongmin'));
  
  Map<String, String> dic ={
    'seongmin' : 'kim',
    'sang ho' : 'na',
  };
  
  print(dic);
  
  Map<String, bool> isfootballer={
    'seongmin' : false,
    'sonny' : true,
  };
  isfootballer.addAll({
    'channy' : true,
  });
  
  print(isfootballer);
  print(isfootballer['sonny']);
  isfootballer['ki'] = true;
  print(isfootballer);
  isfootballer.remove('ki');
  print(isfootballer.keys);

//set 중복 자동 방지
  final Set<String> names = {
    'kim', 'park', 'choi','kim'
  };
  print(names);
  print(names.contains('kim'));

	int number = 3;
  switch(number%3){
    case 0:
      print('나머지 0');
      break;
      
    case 1:
      print('나머지 1');
      break;
    default:
      print('나머지 2');
      break;
  }
  List<int> numbers=[1,2,3,4,5,6];
  
  for(int number in numbers){
      print(number);
  }
  
  int total=0;
  while(total<10){
    total+=1;
  }
  do{
    total+=1;
  }while(total<10);
}


enum Status{
  approved,
  pending, 
  rejedcted,
}

void main() {
  Status status = Status.approved;
  if(status==Status.approved){
    print("approved");
  }
}


//세개 숫자 (x,y,z)를 더하고 짝인지 홀인지 알려주는 함수
addNumbers(int x, [int y=30, int z=40]){//null이니까 ? 를 넣어줘야
  //아님 int y = 30 등으로 기본값을 설정 해줘야ㅣㅣ.
  int sum = x+y+z;
  if(sum%2==0){
    print('짝수');
  }else{
    print('홀수');
  }
}

//optional param-> 대괄호

//named param ; 순서 중요 않다.
addNumbers1({required int x,required int y, required int z}){
  int sum = x+y+z;
  if(sum%2==0){
    print('짝수');
  }else{
    print('홀수');
  }
}

addNumbers2({required int x,required int y,  int z=50}){
  //이렇게도 가능하다 이말씀.
  int sum = x+y+z;
  if(sum%2==0){
    print('짝수');
  }else{
    print('홀수');
  }
}

addNumbers3(int x, {required int y,  int z=50}){
  //이렇게도 가능하다 이말씀.
  int sum = x+y+z;
  if(sum%2==0){
    print('짝수');
  }else{
    print('홀수');
  }
}

//arrow 함수?
int addNumbers4(int x, {required int y, int z= 30,})=>x+y+z;
void main() {
  Oper oper = add;
  print(oper(10,20,30));
  
  
  print(calc(30,40,50, sub));
}

//signature
typedef Oper = int Function(int x, int y, int z);

int add(int x, int y, int z)=>x+y+z;
int sub(int x, int y, int z)=>x-y-z;
int calc(int x, int y, int z, Oper oper){
  return oper(x,y,z);
}
728x90

댓글