인공지능 개발자 수다(유튜브 바로가기) 자세히보기

flutter

[flutter] dart 언어 - print, 주석, 변수, 자료형 (2)

Suda_777 2025. 2. 22. 22:30

목차

    반응형

     

    1. main 함수와 print()

    Dart 프로그램은 main() 함수에서 실행이 시작된다.

     

    print() 함수를 이용해 선언한 변수를 출력할 수 있다.

    그리고 코드 마지막에 ;(세미콜론)을 넣어준다.

     

    void main() {
      print("Hello, Dart!");
    }

     


    2. 주석

    한줄 주석은 // 을 사용하면 된다.

     

    여러줄 주석은 /* */ 을 사용

     

    void main() {
      /* 
       여러 줄 주석을 사용할 수 있습니다.
       이 부분은 실행되지 않습니다.
      */
      print("Hello, Dart!"); // 출력: Hello, Dart!
    }

     


    2. var 변수 만들기

    var로 자료형을 만들면

    자동으로 자료형을 알맞게 선언해 준다.

    한 번 타입이 정해지면 변경할 수 없다.

    void main() {
      var name = "Dart";  // String으로 추론됨
      var age = 25;        // int로 추론됨
      
      print(name);  // Dart
      print(age);   // 25
    
      // age = "twenty";  // 오류: age는 int로 결정되었기 때문에 다른 타입을 할당할 수 없음
    }

     


    3. 기본 자료형과 명시적 타입 지정

    명시적으로 자료형을 선언할 수도 있다.

    • int
    • double
    • String
    • bool
    • dynamic - 모든 타입을 저장 가능
    • late <자료형> - 나중에 초기화 가능
    • <자료형>? - null을 가질 수 있음
    void main() {
      int age = 25;
      print("Age: $age"); // 출력: Age: 25
    
      double pi = 3.14;
      print("Pi: $pi"); // 출력: Pi: 3.14
    
      String name = "Dart";
      print("Hello, $name!"); // 출력: Hello, Dart!
    
      bool isActive = true;
      print("Is Active? $isActive"); // 출력: Is Active? true
    
      dynamic value = "Hello";
      print("Dynamic Value: $value"); // 출력: Dynamic Value: Hello
      value = 42;
      print("Updated Dynamic Value: $value"); // 출력: Updated Dynamic Value: 42
    
      late String greeting;
      greeting = "Good Morning!";
      print("Greeting: $greeting"); // 출력: Greeting: Good Morning!
    
      int? nullableNumber;
      print("Nullable Number: $nullableNumber"); // 출력: Nullable Number: null
      nullableNumber = 100;
      print("Updated Nullable Number: $nullableNumber"); // 출력: Updated Nullable Number: 100
    }

     


    4. List

    4.1. 변수 선언

    List<T> 형식으로 선언

      List<int> numbers = [1, 2, 3, 4, 5];

     


    4.2. 값 추가

    값 추가 : add()

      numbers.add(6); // 요소 추가

     


    4.3. 조회

    값 추출 : numbers[0]

      print(numbers[0]); // 첫 번째 요소: 10
      print(numbers[2]); // 세 번째 요소: 30

     

    값 범위 추출 : numbers.sublist(start, end)

    List<int> subNumbers = numbers.sublist(1, 4); // 인덱스 1부터 3까지 추출 (4는 포함되지 않음)

     

    조건에 맞게 필터링 : numbers.where((변수) => 조건).toList()

    List<int> greaterThan25 = numbers.where((num) => num > 25).toList();

     


    4.4. 삭제

    특정 값 삭제 numbers.remove(값)

    numbers.remove(3); // 값 3 삭제

     

    특정 인덱스 값 삭제 : numbers.removeAt(인덱스)

    numbers.removeAt(2); // 인덱스 2 (값 30) 삭제

     

    특정 조건을 만족하는 값 삭제 : numbers.removeWhere((변수) => 조건)

    numbers.removeWhere((num) => num < 20); // 20보다 작은 값 삭제

     

    리스트 비우기 numers.clear()

    numbers.clear(); // 모든 요소 삭제

     


    4.5. 수정

    특정 인덱스의 값 수정 : = 연산자로

    numbers[1] = 25; // 인덱스 1의 값을 25로 변경

     

    여러개 값 한번에 수정 : numbers.replaceRange(start, end, [변할 값])

    numbers.replaceRange(1, 3, [8, 9]); // 인덱스 1~2를 8, 9로 변경 (3은 포함X)

     


    5. Map

    5.1. 변수 선언

    선언 방법 : Map<key, value>

    Map<String, int> scores = {
        "Alice": 90,
        "Bob": 85,
        "Charlie": 95
    };

     

    빈 map 생성

    map<String, String> emptyMap = Map();

     


    5.2. 값 추가 및 수정

    새로운 키값이면 추가하고,

    같은 키값이 있으면 수정한다.

    Map<String, int> scores = {};
    
    scores["Alice"] = 90; // 키-값 추가
    scores["Bob"] = 85;

     


    5.3. 조회

    조회 : []

    존재 여부 확인: containsKey()

    Map<String, int> scores = {"Alice": 90, "Bob": 85};
    
    print(scores["Alice"]); // 조회
    print(scores["Charlie"]); // 조회시 없으면 null
    
    print(scores.containsKey("Alice")); // 존재 여부 확인, 존재하면 true

     

    모든 key값 가져오기 : keys()

    print(scores.keys); // 출력: (Alice, Bob)

     

    모든 value 값 가져오기 : value()

    print(scores.values); // 출력: (90, 85)

     


    5.3. 삭제

    특정 값 삭제 : remove()

    모든 값 삭제: clear()

    Map<String, int> scores = {"Alice": 90, "Bob": 85, "Charlie": 95};
    
    scores.remove("Bob"); // Bob 삭제
    
    scores.clear() // 모든 값 삭제

     


    5.4. 반복문 사용

    변수에서 바로 반복문을 사용할 수도 있다.

    forEach((key, value) {반복문 내용...})

    Map<String, int> scores = {"Alice": 90, "Bob": 85};
    
    scores.forEach((key, value) {
    	print("$key의 점수: $value");
    });

     

    물론 for - in 방식으로 사용할 수도 있다.

      for (var key in scores.keys) {
        print("$key: ${scores[key]}");
      }

     


    5.6.  자료형 변환

    map - > list : toList()

    Map<String, int> scores = {"Alice": 90, "Bob": 85, "Charlie": 95};
    
    List<String> keysList = scores.keys.toList(); // 키 리스트 변환
    List<int> valuesList = scores.values.toList(); // 값 리스트 변환

     

    list -> map : fromIterables()

    List<String> names = ["Alice", "Bob", "Charlie"];
    List<int> scores = [90, 85, 95];
    
    Map<String, int> nameToScore = Map.fromIterables(names, scores);

     


    5.7. 필터링

    where 함수를 사용

    entries를 사용함, entries에 value가 들어있음

    var highScores = scores.entries.where((entry) => entry.value >= 90);

     


    6.  Set

    6.1. 변수 선언

    Set<T> : 중복을 허용하지 않는 리스트

      Set<String> uniqueNames = {"Alice", "Bob", "Charlie", "Alice"};

     

    빈 Set 선언

    Set<int> emptySet = Set();

     


    6.2. 값 추가

    단일 값 : .add()

    여러개 값 : .addAll()

      numbers.add(4); // 단일 값 추가
      numbers.addAll([5, 6, 7]); // 여러 개 값 추가

     


    6.3. 조회

    특정 값 존재 여부 확인 : contains()

    Set<int> numbers = {10, 20, 30, 40};
    
    print(numbers.contains(20)); // 존재 여부 확인
    print(numbers.length); // 크기 확인

    6.4. 삭제

    값 삭제 : remove()

    전체 값 삭제 : clear()

      Set<String> fruits = {"Apple", "Banana", "Cherry"};
    
      fruits.remove("Banana"); // 특정 값 삭제
      fruits.clear(); // 모든 값 삭제

     


    6.5. 연산

    합집합: union()

    교집합: intersection()

    차집합: difference()

    Set<int> setA = {1, 2, 3};
    Set<int> setB = {3, 4, 5};
    
    Set<int> unionSet = setA.union(setB); // 합집합
    Set<int> intersectionSet = setA.intersection(setB); // 교집합
    Set<int> differenceSet = setA.difference(setB); // 차집합
    반응형