728x90
반응형
순서
- Cascade Notation
- Enum type
Cascade Notation
' .. '
위의 모양이 Cascade Notation 다.
이 것을 사용하면 하나의 객체에 함수 호출, 필드 접근을 수행할 수 있다.
쉽게 말해서 어떤 객체가 만들어졌으면
바로 아래에 저 모양을 쓰면 그 객체 자체로 인식한다는 말이다.
이걸 사용하는 중간에 어떤 값이 반환되더라도 무시하고 순차적으로 접근만 한다.
말이 좀 어려운데 그냥 아래의 예를 보자.
guy 라는 객체를 만들었고
그 객체 안에 있는 이름과 나이를 각각 바꿨다.
void main() {
var guy = Guy(name : 'jin', age : 20);
guy.name = 'lee';
guy.age = 25;
}
// 클래스 선언
class Guy{
String name;
int age;
// 생성자 생성
Guy({this.name, this.age});
}
이걸 이제 Cascade Notation 를 사용하면 아래와 같이 변한다.
guy 부분이 . 이 되었고
guy를 받는 부분 각각의 세미콜론이 사라지고
전체의 마지막에 ; 가 들어감으로 한 뭉텅이 취급을 받는다.
void main() {
var guy = Guy(name : 'jin', age : 20)
..name = 'lee'
..age = 25;
}
Enum type
이 타입은 개발자가 흔한 오타 같은 것을 안하게 도와주는 클래스 같은 녀석이다.
이 타입으로 변수의 값이 어떤 것들이 들어갈 것이라고 선언만 하면
그 외의 값이 들어오면 에러처리를 내버린다.
아래의 예를 보자.
main 메소드에서 jin이라고 들어간 자리에는 성별만 들어갈 수 있다.
따라서 첫 줄에 enum으로 선언한 요소 외의 것인 jin 들어가면 에러가 난다.
enum으로 선언 시 클래스 같은 취급을 받기 때문에 세미콜론은 쓰지 않는다.
그리고 클래스 내에서 enum 타입의 클래스로 변수를 만들고 사용하면 된다.
enum Gender {male, female}
void main() {
var guy = Guy('jin' , 20);
}
class Guy{
Gender gender;
int age;
// 생성자 생성
Guy(this.gender, this.age);
}
따라서 이렇게 바뀌면 된다.
enum gender {male, female};
void main() {
var guy = Guy(gender.male , 20);
}
728x90
반응형
'다트(Dart)' 카테고리의 다른 글
다트(Dart) Mixin (0) | 2023.03.15 |
---|---|
다트(Dart) 클래스 / 생성자 / Named Constructor Parameters / Named Constructor (2) | 2023.03.15 |
다트(Dart) typedef (0) | 2023.03.14 |
다트(Dart) 연산자 (0) | 2023.03.14 |
다트(Dart) 함수 (0) | 2023.03.14 |
댓글