2-1 Default Initializations

default-init

playground.restaurant에서 사용된 default-init 기능에 대해 알아보도록 하겠습니다. default-init에 대한 설명을 따라가면서 위의 코드에 비워져있는 곳을 채워주시면 됩니다.

goal에 들어갈 정답은 input으로 사용된 concept의 type과 일치합니다.

지금부터 Developer Center의 예제를 통해서 정답을 찾아보도록 하겠습니다!

아래에 보이는 action(CheckStatus)은 receipt이라는 input concept에 min(Required)를 설정하였습니다. 이것은 receipt에 무조건 값이 저장되어야 한다는 뜻입니다. 만약 receipt에 값이 들어가지 않으면, default-init으로 설정된 값이 자동으로 저장되게 됩니다.

action (CheckStatus) {  
    type (RefreshActivity)  
    collect {    
        input (receipt) {      
            type (Receipt)      
            min (Required)      
            default-init {        
                intent {          
                    goal: Receipt        
                }      
            }    
        }  
    }  
    output (Receipt)
}

위에 보이는default-init block은 새로운 intent를 정의하고 있습니다. intent 통해서 사용자의 입력이 들어오지 않으면 receipt concept에 output인 Receipt를 default로 저장하게 됩니다.

default-init을 사용하려면 선언한 input concept에 맞는 intent를 넘겨주어야 합니다. 만약 없다면 최근에 요청했던 값이 들어가거나 값이 제공되지 않을 수 있습니다. 그렇기 때문에 intent가 return하는 값이 input concept의 type과 같은 type으로 설정되어야 합니다.

Last updated