본문 바로가기
다트(Dart)

다트(Dart) Cascade Notation / Enum type

by 인생즐겜러 2023. 3. 15.
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

댓글