Flutter/Dart

[Dart] 기본 - Record

코르피 2023. 11. 30. 19:24
반응형

Record

다른 언어에서는 튜플.

setter가 없어서 불변이다.

 

통째로 갈아끼우면 참조를 변경할 수 있다.

  (int, int) record = (1, 2);
  record = (3, 4);
  print(record); // (3, 4)

 

 

Record fields

    (int, int, {int a, int b}) record = (1, a: 2, b: 3, 4);
    print(record.$1); // 1
    print(record.$2); // 4
    print(record); // (1, 4, a: 2, b: 3)

 

{} 로 함수처럼 이름을 가질 수 있다.

{} 는 제일 마지막 부분에 넣어야한다.(함수처럼)

 

named field를 제외하고 순서대로 $1부터 간다.

named 초기화 시 순서가 상관이 없다.

 

  ({int x, int y, int z}) point = (x: 1, y: 2, z: 3);
  ({int r, int g, int b}) color = (r: 1, g: 2, b: 3);

  print(point == color); // false

  (int, int, int) point1 = (1, 2, 3);
  (int, int, int) color1 = (1, 2, 3);

  print(point1 == color1); // true

 

이름을 지정하면 값이 같아도 다르다.

이름이 없다면 값이 같으면 같다.

 

Destructuring multiple returns

직역하면 구조분해 다중반환

관련링크

  (int, int) point = (1, 2);
  var (x, y) = point;
  print(x); // 1
  print(y); // 2

 

유용하다.

반응형

'Flutter > Dart' 카테고리의 다른 글

[Dart] 기본 - Memory  (0) 2023.12.02
[Dart] 기본 - Final, Const  (1) 2023.12.01
[Dart] 기본 - Classes, Abstract, Mixin  (0) 2023.11.29
[Dart] 기본 - extends, with, implements  (0) 2023.11.29
[Dart] 기본 - Loops  (0) 2023.11.29