반응형
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 |