AR삽질러

Dart DataTypes - (3) 본문

Dart

Dart DataTypes - (3)

아랑팡팡 2023. 8. 28. 00:35
728x90

Dart DataTypes

 

1. 숫자(Integer)

 - 정수형 데이터를 표현

void main() {
  int age = 30;
}

 

2. 실수(Double)

 - 실수형 데이터 소숫점 숫자를 표현

void main() {
  double pi = 3.141592;
}

 

3. 문자열(String)

void main() {
  String name = 'AR';
  String name = "AR";
}

 - 텍스트 테이터 String타입의 값을 선언할때 ' ' 작은따옴표, " "큰따옴표 두개다 사용가능하다.

 

4. 참거짓(Boolean)

 - 논리값 참 또는 거짓을 나타낸다.

void main() {
  bool alive = true;
}

 

5. 리스트(List)

  5-1) 여러 개의 값을 순차적으로 저장하는 자료구조

void main() {
  var numbers = [1, 2, 3, 4, 5];
  List<int> numbers = [1, 2, 3, 4, 5];
  numbers.add(6);
}

 5-2) List역시 Integer로 되어있다. 또 List의 선언은 "var"를 사용해되되고 "List<int>"를 사용해서 선언할 수도 있다.

List로 선언된 numbers에 다른 데이터를 추가하고 싶다면 자료형이 같은 데이터일 경우에만 add가 가능하다.

 

void main() {
  var numbers = [1, 2, 3, 4, 5,];
  numbers.first;
  numbers.last;
}

"변수명.first" : List의 첫번째 요소를 가져온다.

"변수명.last" : List의 마지막 요소를 가져온다.

 

 5-3) Dart에서 List를 선언할때는 마지막에 "," 를 추가하여 줄 포매팅을 만든다.

void main() {
  var numbers = [
    1,
    2,
    3,
    4,
    5,
  ];

  numbers.first;
  numbers.last;
}

 

5-4) collection if

 - if로 존재할 수도 있고 아닌수도 있는 요소를 가지고 만든다.

 - Collectio if : 리스트나 다른 컬렉션을 생성할때 조건에 따라 요소를 추가하는 방법으로 조건이 참일경우 요소를 추가하고 거짓일 경우 요소를 추가하하지 않게 된다.

void main() {
  var giveMeFive = true;
  var numbers = [1, 2, 3, 4, if (giveMeFive) 5];
  print(numbers);
}

변수 gibeMeFive가 true라면 5를 추가할 수 있다.

 

5-5) collection for

 - 

 - Collection for : 리스트나 다른 컬렉션을 생성할 때 반복문을 사용하여 요소를 추가하는 방법으로 기존의 리스트나 컬렉션에 요소를 가져와 변환하여 새로운 컬렉션을 생성할 때 유용하다.

void main() {
  var numbers = [
    1,
    2,
    3,
    4,
    5,
  ];
  var doubleNumbers = [for (var num in numbers) num * 2];
  print(doubleNumbers);
}

 - numbers리스트의 각 요소를 가져와 두배로 변환하여 doubleNumbers리스트를 생성할 수 있다.

 

또 아래의 코드와 같이 리스트의 각요소를 변환하여 추가할 수 있다.

void main() {
  var oldFriends = ['아랑', '동규'];
  var newFriends = [
    '창식',
    '승현',
    '민희',
    for (var friend in oldFriends) "❤️ $friend",
  ];
  print(newFriends);
}

 - for반복문으로 oldFriends의 리스트안의 각 요소를 가져와 "❤️ $friend" 형식으로 변환한 후 newFriends리스트에 추가한다. 이런식으로 Collection을 사용하여 기존 데이터와 새로운 데이터를 구분하는 방법으로 사용하는 것도 가능하다.

 

5-6) String Interpolation

 - String Interpolation은 test에 변수를 추가하는 방법이다.

 - 문자열 안에 변수나 표현식의 값을 삽입하는 방법으로 문자열을 동적으로 생성할 수 있다. 

 - 문자열 내 변수의 값을 삽입하려면 변수 이름 앞에 '$'기호를 붙이면된다. 이때 변수의 값이 문자열 내에 삽입되고 변수가 복잡한 표현식을 가지고 있다면 '${표현식}" 형식을 사용하여 삽입할 수 있다.

void main() {
  var oldFriends = ['아랑', '동규'];
  var newFriends = [
    '창식',
    '승현',
    '민희',
    for (var friend in oldFriends) "❤️ $friend",
  ];
  print(newFriends);

  var name = "AR";
  var greeting =
      "Hello everyone, my name is $newFriends, and add $name, nice to meet you!";
  print(greeting);
}

 

계산을 실행할때

void main() {
  var oldFriends = ['아랑', '동규'];
  var newFriends = [
    '창식',
    '승현',
    '민희',
    for (var friend in oldFriends) "❤️ $friend",
  ];
  print(newFriends);

  var name = "AR";
  var age = 10;
  var greeting =
      "Hello everyone, my name is $newFriends, and add $name and I'm ${age + 2}!";
  print(greeting);
}

 

6. 맵(Map)

 - Key : Value 쌍으로 데이터를 저장하는 자료구조

 - Map은 JavaScript의 TypeScript의 object, python의 dictionary와 같은 기능이다.

void main(){
  var player = {
    'name' : 'AR',
    'HP' : 100.0,
    'MP' : 88.0,
    'Item' : false,
    };

}
void main(){
  Map<String, Object> player = {
    'name' : 'AR',
    'HP' : 100.0,
    'MP' : 88.0,
    'Item' : false,
    };

}

var를 사용할때는 컴파일러가 자동으로 자료형을 명시하기 때문에 자료형을 명시해줄 필요가 없다.

예문에서 key : value자료구조를 Map으로 만들었는데 Dart에서 자동을 key : String, value : Object로 인식한다.

Object는 어떤 자료형도 가능하다.(any)

 

 

7. 셋(Set)

 - 중복되지 않은 값을 저장하는 자료구조

void main() {
  var numbers = {1, 2, 3, 4};
  numbers.add(1);
  numbers.add(5);
  print(numbers);
}
 

List와 같지만 유니크해 같은 숫자가 중복된다면 추가되지 않는다.

List는 중복되는 숫자가 있어도 요소에 추가될 수 있다.

void main() {
  var numbers = {1, 2, 3, 4};
  numbers.add(1);
  numbers.add(5);
  print(numbers);

  var numbersList = [1, 2, 3, 4];
  numbersList.add(1);
  numbersList.add(1);
  numbersList.add(1);
  print(numbersList);
}

 

8. 동적타입(Dynamic)

 - 실행 시간에 데이터 타입을 결정하는 타입

 - Dynamic(동적타입)은 다른 Dart의 타입과는 다르게 변수의 타입을 명시적으로 선언하지 않아도 되며 변수에 할당되는 값에 따라 그 타입이 동적으로 결정된다. 

void main() {
  dynamic myAge = 20;
  print(myAge);

  myAge = "AR";
  print(myAge);
}

 

9. 객체(Object)

 - 모든 객체의 최상위 클래스로 다양한 데이터 타입을 포함할 수 있다.

 

 

위 모든 타입은 object로 이루어져 있다. String, bool, int 등 모두 num클래스로 부터 파생된 것이다.

num자료형을 사용하면 같은 클래스의 부모타입이 때문 그 숫자는 Integer이 될 수도 있고 Double이 될수도 있다. 

728x90
반응형
LIST

'Dart' 카테고리의 다른 글

Dart Typedef - (5)  (0) 2023.09.02
Dart Functions - (4)  (0) 2023.09.02
Dart Variables- (2)  (0) 2023.08.26
Dart - 설치 및 환경설정(1)  (0) 2023.08.22
Dart 입문(0)  (0) 2023.08.21