본문 바로가기
3.4 FrondEnd/Flutter & dart

[dart] 변수, 형변환, 컬렉션

by Dohi._. 2024. 11. 4.
728x90

연습사이트

https://dartpad.dev/

1. 변수

변수에서 중요한점은 Null Safety를 Dart에서 고려해야한다.

선언과 동시에 초기화를 해줘야한다는 점이다.

 

//int age ;  // 문제발생
int age = 99; // 이렇게 해야한다

// 겸사 dart 주석 은이렇게 구성 되어 있다.
// 한줄 주석 
/* 
 여러줄 주석
*/

 

  • 정수형 (int)
int age = 25;
  • 실수형 (double)
double height = 175.5;
  • 숫자형 (num)
    • int 또는 double 타입을 모두 포함하는 숫자 타입입니다.
num number = 10;  // 정수  
number = 10.5;    // 실수도 허용됨
  • 문자열 (String)
String name = "John";
  • 불리언 (bool)
bool isLoggedIn = false;
  • 동적 타입 (dynamic)
    • 어떤 타입의 값도 저장할 수 있는 동적 타입입니다.
    • 후에 타입을 변경할 수 있습니다
 dynamic data = "Hello";  
 data = 10;  // 다른 타입도 허용됨
  • 변수 (var)
    • Dart가 자동으로 타입을 추론하는 변수입니다.
    • 선언후 다른 타입으로 할당 불가
var age = 25;     // int로 추론  
var height = 175.5; // double로 추론  
age = 30;     // OK
age = "30";   // 오류 발생: 'age'는 int로 선언되었으므로 다른 타입을 할당할 수 없음

 

2. 형변환

Dart에서는 자동 형변환을 제공해주지않는다

따라서 형변환을 직접 해줘야하는데

  • 정수 ↔ 실수 간 변환
    • to메소드
    • as 연산자
int number = 10; 
double doubleValue = number.toDouble();// int를 double로 변환 
print(doubleValue);
int intValue = doubleValue.toInt(); // double을 int로 변환

int intNum = 1;
double doubleNum = intNum as double;
  • 문자열 ↔ 숫자형 간 변환
    • Parse메소드 (문자열 -> 숫자형)
    • to메소드 (숫자형 -> 문자형)
    String strValue = "123";  
    int intValue = int.parse(strValue);      // 문자열을 int로 변환  
    double doubleValue = double.parse(strValue); // 문자열을 double로 변환  
    int number = 456;  
    String stringNumber = number.toString(); // int를 문자열로 변환  
  • 형변환 예외 처리
    try {  
        int value = int.parse("abc"); // 형변환 실패  
    } catch (e) {  
        print("형변환 오류 발생: $e");  
    }  

3. 컬렉션

Dart에서 컬렉션은 여러 개의 데이터를 다루기 위해 사용되는 데이터 구조입니다.

주요 컬렉션 타입은 List, Set, Map을 설명하고자 합니다:)

여기서는 간단한 메서드만 다루며 컬렉션의 주요 메서드관련은 한개씩 다시 다룰 예정입니다

3.1 List (리스트)

  • 선언 방법
List numbers = [1, 2, 3, 4, 5]; 
// List<int> numbers = [1, 2, 3, 4, 5];  //와동일
var fruits = ["Apple", "Banana", "Cherry"];
  • 주요 메서드
    • add(): 리스트에 요소 추가
    • remove(): 특정 요소 제거
    • removeAt(): 특정 인덱스 제거
    • contains(): 리스트에 특정 요소가 포함되어 있는지 확인
    • length : 리스트의 길이확인

3.2 Set (셋)

  • 선언 방법
Set uniqueNumbers = {1, 2, 3, 4, 5}; 
var letters = {"A", "B", "C"};
  • 주요 메서드
    • add(): 셋에 요소 추가
    • remove(): 특정 요소 제거
    • contains(): 셋에 특정 요소가 포함되어 있는지 확인

3.3 Map (맵)

  • 선언 방법
Map<String, int> ages = {"Alice": 25, "Bob": 30}; 
var scores = {"Math": 95, "English": 88};
  • 주요 메서드
    • putIfAbsent(): 키가 없을 경우 값을 추가
    • remove(): 특정 키와 연결된 값 제거
    • containsKey(): 맵에 특정 키가 있는지 확인

4.컬렉션 간 형변환

컬렉션 타입 간에도 형변환이 가능합니다.

  • List → Set 변환
List numbers = [1, 2, 2, 3, 4]; 
Set uniqueNumbers = numbers.toSet(); // 중복된 값이 제거됨
  • Set → List 변환
Set letters = {"A", "B", "C"};
List letterList = letters.toList();
  • Map의 키 또는 값만 List로 변환
Map<String, int> scores = {"Math": 95, "English": 88}; 
List subjects = scores.keys.toList(); // 키만 리스트로 변환 
List values = scores.values.toList(); // 값만 리스트로 변환
728x90

댓글