App_Dev/Flutter

[ 앱 개발자 도전기 : 크로스플랫폼_Flutter & Dart ] 기본 문법 간략 정리.

안다미로 : Web3 & D.S 2024. 11. 15. 00:14

 

 

 

 

[ 앱 개발자 도전기 : 크로스플랫폼_Flutter & Dart ] 

기본 문법 간략 정리.

 


 

∇ Dart, 기본 문법 간략 정리.

목   차

1. void main()
2. 변수 설정
3. 함수 설정
4. List 생성
5. Map 생성
6. 조건문

 


 

Ⅰ.  void main()


   ※ Dart를 실행시키면, 가장 먼저 볼 수있는 코드입니다.

          dart는 코드를 볼 때 main 함수를 가장 먼저 실행시킵니다.

    

           § 그렇기에 class를 main 함수 밖에 만든 후에, 이를 main 함수 안에 넣어줘야 실행이 됩니다.

 

 


Ⅱ.  변수 설정.


 

int age = 30;
double height = 180.3;
num weight = 75.5; // num은 int와 double을 모두 커버할 수 있습니다.
height = age as double; // double과 int는 서로 할당이 불가능합니다. as를 통해 할당할 수 있습니다.
String name = 'minki';
bool isNight = false;

 

   - 기본적으로 dart에서는 한번 선언된 변수 타입은 바꿀 수 없습니다.

         - > 만약, 변수 타입을 지정하고 싶지 않다면 다음을 이용하여 변수를 설정하면 도비니다.

dynamic a = 10;
final b = 10; // final로 선언하면 변수 타입을 지정해주지 않아도 되지만 할당된 값을 바꾸지 못합니다.
const c = 'Happy'

 

    ※ const 와 final은 할당된 변수값을 바꿀 수 없다는 공통점이 있습니다.

 

           const은 compile-time constants 로 런타임 동안이 아니여도, 컴퓨터가 이 상수에 할당된 값을 파악하고 있습니다.

 

 

       ☆ const는 메모리를 임의할당하는 변수-타입이고,

 

       ☆ final는 런타임 시에만 할당된 값을 확인하므로

            메모리를 동적으로 할당하는 변수타입이라고 이해 가능합니다.

 

 

       


Ⅲ.  함수 설정.


   ※ 함수를 설정한 다음 적절한 변수 지정을 통해,  함수에 할당된 값을 호출할 수 있습니다.

 

void main(){
  String greet = greeting();
  int age = getAge();
  
  print(greet);
  print(age);
}

String greeting() {
  return 'hello, uju !';
}
int getAge(){
  return 29;
}

 

 


 

Ⅳ.  List 생성.


   ※ List 생성법은 다른 언어와 유사한 방식입니다.

 

// 변수 타입 상관 없는 리스트 생성법
List samples = ['a', 2, 3.8];
samples.add('d'); // List에 값 추가
samples.add(30)
samples.remove('d'); // List 값 제거

// 변수 타입 지정 리스트 생성법
List<String> foods = ['우유', '라면', '고기'];

void main() {
  // items1은 처음에 스트링만 넣었기 때문에 String으로 List 타입이 고정됨
  var items1 = ['라면', '우유', '냄비'];
  items1.add('사탕');
  items1.add(1); // 에러 발생
  print(items1); // [라면, 우유, 냄비, 사탕]
  
  // items2는 스트링과 num이 섞여 있기 때문에 타입 고정이 안됨
  var items2 = ['라면', '우유', 2];
  items2.add('너구리');
  items2.add(1);
  items2.add(1.5);
  print(items2); // [라면, 우유, 2, 너구리, 1, 1.5]

  // list에 list를 추가하는 방법
  var items3 = [...items1, ...items2, 5];
  print(items3); // [라면, 우유, 냄비, 사탕, 라면, 우유, 2, 너구리, 1, 1.5, 5]
}

 

 


Ⅴ.  Map 생성.


   ※ map은 json 타입과 유사한 형식으로 작성하면 됩니다.

 

void main() {
  var itemMap = {
    'key1' : 1,
    'key2' : 2,
    'key3' : 3,
  };
  print(itemMap['key1']); // 1
}

 

 


Ⅵ.  조건문.


   ※ 조건문도 마찬가지로,  다른 함수와 매우 유사합니다.

 

void main() {
  // is not = !is
  var coffee = 'americano';

  if(coffee is String) {
    print('문자열입니다.');
  } else {
    print('문자가 아님');
  }
}

 

  - 조건문은 ? 를 사용해서 더 쉽게 표현 가능합니다.

 - ?  를 사용하는 코딩을 통해 Flutter 앱이 실행될 시 런타임을 죽이지 않을 수 있습니다.

 

       ● ?? : name이 null일 경우에만 수행.

 

       ● ? : name2가 null이 아닐 경우 수행.

 

void main() {
  String name;
  print(name ?? 'Null입니다.'); // Null입니다.
  
  String name2 = 'ICECREAM';
  print(name2?.toLowerCase()); // icecream
}