포럼 번역

DAML script createCmd 문법

socl 2020. 10. 7. 15:27

Q

다음과 같이 초기화 코드 스크립트를 작성하려고합니다.

submit alice do createCmd Product with 
    isProcessed = False
    description = "Coffee for Starbucks"
    owner = alice
    ...

오류가 발생합니다 (첫 번째‘=’아래에 강조 표시됨). 하지만 한 줄에 세미콜론으로 모두 할당하면 사라집니다.

submit alice do createCmd Product with isProcessed = False; description = "Coffee for Starbucks"; owner = alice;

코드에 많은 필드가 있기 때문에 이것은 이상적이지 않습니다. 줄 바꿈에 어떻게 할당 할 수 있습니까?

N.B : 줄 바꿈 + 세미콜론에서도 오류가 발생합니다.

A

DAML은 들여 쓰기에 민감합니다. do, with,… 를 통해 새 블록을 시작할 때 중첩된 블록을 이전 블록보다 더 멀리 정렬해야 합니다. 이 경우 do 에 의해 시작된 블록은 createCmd 의 시작에 정렬되므로 with 로 시작된 블록을 더 들여 쓰기 해야 합니다.
다음은 작동하는 예제 코드 입니다.

submit alice do createCmd Product with
                   isProcessed = False
                   description = "Coffee for Starbucks"
                   owner = alice

블록을 더 많이 들여 쓸 수 있습니다. 여기서 제가 개인적으로 할 수있는 일은 createCmd 가 왼쪽으로 조금 더 이동할 수 있도록 do 뒤에 줄 바꿈을 삽입하는 것입니다. 예를 들면 다음과 같습니다.

 submit alice do
    createCmd Product with
      isProcessed = False
      description = "Coffee for Starbucks"
      owner = alice

원문 : DAML script createCmd syntax
https://discuss.daml.com/t/daml-script-createcmd-syntax/986