ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [dart] dart 문법 간단 정리 1
    Dart 2023. 2. 17. 19:23

    dart 문법 간단 정리

     

    변수와 상수

    변수는 var 키워드를 사용하여 선언하며, 변수의 타입은 자동으로 추론됩니다.

    var x = 10;

     

     

    상수는 final 또는 const 키워드를 사용하여 선언하며, 런타임 중에 변경될 수 없습니다.

    final과 const의 차이는 final은 런타임에 초기화되며 const는 컴파일 타임에 초기화됩니다.

    final y = 20;
    const z = 30;
     

    함수(메서드)

    함수는 Function 또는 타입 명시를 사용하여 선언할 수 있습니다. 함수의 매개변수는 괄호 안에 선언하며, 반환 값은 함수 선언의 뒤에 => 기호와 반환 값의 타입을 지정합니다.

    int add(int x, int y) {
        return x + y;
    }
    
    Function multiply = (int x, int y) => x * y;
     

    익명 함수

    Dart는 익명 함수를 지원합니다.

    익명 함수는 이름이 없는 함수로, 변수에 할당하여 사용할 수 있습니다.

    var add = (int x, int y) {
      return x + y;
    };
    
    print(add(1, 2)); // 3

     

     

    고차 함수

    Dart는 고차 함수를 지원합니다.

    고차 함수는 함수를 인자로 받거나, 함수를 반환하는 함수입니다.

    int add(int x, int y) {
      return x + y;
    }
    
    int multiply(int x, int y) {
      return x * y;
    }
    
    int calculate(int x, int y, Function(int, int) operation) {
      return operation(x, y);
    }
    
    print(calculate(2, 3, add)); // 5
    print(calculate(2, 3, multiply)); // 6

     

    화살표 함수

    Dart는 화살표 함수를 지원합니다.

    화살표 함수는 간단한 함수를 정의할 때 사용됩니다.

    int add(int x, int y) => x + y;

    위와 같이, 함수의 바디가 한 줄인 경우에는 중괄호 대신 화살표를 사용할 수 있습니다.

     

    람다식

    Dart는 람다식을 지원합니다. 람다식은 함수를 간단하게 표현할 수 있는 방법입니다.

    var add = (int x, int y) => x + y;
    print(add(1, 2)); // 3

     

    조건문과 반복문

    Dart는 if, else if, else와 같은 조건문과 for, while과 같은 반복문을 제공합니다.

    // 조건문 예제
    if (x > 10) {
        print("x is greater than 10."); 
    } else if (x < 10) {
        print("x is less than 10.");
    } else {
        print("x is equal to 10.");
    }
    
    // for 문 예제
    for (int i = 0; i < 10; i++) {
        print(i);
    }
    
    // while 문 예제
    int i = 0;
    while (i < 10) {
        print(i); i++;
    }
     

    예외 처리

    Dart는 예외 처리를 위해 try, catch, finally 키워드를 제공합니다.

    try {
        // 예외가 발생할 수 있는 코드
    } catch (e) {
        // 예외가 발생했을 때 처리할 코드
    } finally {
        // 예외가 발생하던 안하던 항상 실행할 코드
    }

     

    클래스

    클래스는 class 키워드를 사용하여 선언합니다.

    클래스는 멤버 변수와 메서드로 구성됩니다.

    멤버 변수는 클래스 내에서 선언되며, 메서드는 클래스 내부에 선언되며, 객체를 통해 호출됩니다.

    class Person {
      String name;
      int age;
    
      Person(this.name, this.age);
    
      void sayHello() {
        print('Hello, my name is $name. I am $age years old.');
      }
    }
    
    void main() {
      Person person = Person('Jane', 20);
      person.sayHello(); // Hello, my name is Jane. I am 20 years old.
    }
     

    상속

    Dart는 상속을 지원합니다. 상속을 이용하면 기존 클래스를 확장하여 새로운 클래스를 정의할 수 있습니다.

    class Animal {
      void sayHello() {
        print('Hello, I am an animal.');
      }
    }
    
    class Cat extends Animal {
      void sayHello() {
        print('Hello, I am a cat.');
      }
    }
    
    void main() {
      Cat cat = Cat();
      cat.sayHello(); // Hello, I am a cat.
    }

    위 코드에서 Animal 클래스는 sayHello 메서드를 가지고 있습니다.

    Cat 클래스는 Animal 클래스를 상속받아 sayHello 메서드를 오버라이딩합니다.

    main 함수에서는 Cat 클래스를 이용하여 cat 객체를 생성하고, sayHello 메서드를 호출합니다.

     

     

    추상 클래스

    Dart는 추상 클래스를 지원합니다.

    추상 클래스는 객체를 생성할 수 없는 클래스로, 하위 클래스에서 구현해야 하는 메서드를 정의할 수 있습니다.

    abstract class Animal {
      void sayHello();
    }
    
    class Cat extends Animal {
      void sayHello() {
        print('Hello, I am a cat.');
      }
    }
    
    void main() {
      Cat cat = Cat();
      cat.sayHello(); // Hello, I am a cat.
    }

    위 코드에서 Animal 클래스는 sayHello 메서드를 추상 메서드로 정의합니다.

    Cat 클래스는 Animal 클래스를 상속받아 sayHello 메서드를 구현합니다.

     

    인터페이스

    Dart는 인터페이스를 지원합니다.

    인터페이스는 객체의 동작을 정의하는 틀로, 클래스가 인터페이스를 구현하면 해당 동작을 제공해야 합니다.

     

    dart 에서는 인터페이스를 사용할 수 있긴 하지만, keyword 는 interface 를 사용하지 않고 abstract 를 사용하며 구현하는 클래스에서는 implements 로 구현합니다.

    abstract class Animal {
      void sayHello();
    }
    
    abstract class Flyable {
      void fly();
    }
    
    class Bird extends Animal implements Flyable {
      void sayHello() {
        print('Hello, I am a bird.');
      }
    
      void fly() {
        print('I can fly.');
      }
    }
    
    void main() {
      Bird bird = Bird();
      bird.sayHello(); // Hello, I am a bird.
      bird.fly(); // I can fly.
    }

    위 코드에서 Animal 인터페이스는 sayHello 메서드를 정의합니다.

    Flyable 인터페이스는 fly 메서드를 정의합니다.

    Bird 클래스는 Animal 인터페이스를 구현하고, Flyable 인터페이스를 상속받아 sayHello 메서드와 fly 메서드를 구현합니다.

    main 함수에서는 Bird 클래스를 이용하여 bird 객체를 생성하고, sayHello 메서드와 fly 메서드를 호출합니다.

     

    인터페이스를 이용하면 객체의 동작을 표준화할 있어 코드의 유지보수성과 가독성을 높일 있습니다.

     

     

     

     

    간단하게 내용 정리 하였습니다.

     

    이어서 다른 내용도 추가 정리 하도록 하겠습니다.

    댓글

Designed by Tistory.