지정 연산자 (assignment operator, :=) 에 대한 간략한 설명 > 기타코드 강좌

본문 바로가기
사이트 내 전체검색

기타코드 강좌

지정 연산자 (assignment operator, :=) 에 대한 간략한 설명

페이지 정보

profile_image
작성자 Aravis
댓글 0건 조회 1,631회 작성일 24-02-06 17:01

본문

1. 지정 연산자란?

 

:=

 

이렇게 씁니다.

 

역할은 VarSet 명령어와 같습니다

 

var(0) := 50

 

이렇게 써주면 var(0) 은 50 이 됩니다.

 

 

 

2. 사용 장소

 

다른 곳에도 들어갈 수 있을 것 같지만, 확실하지 않기에 트리거에 대해서만 언급하겠습니다.

 

지정 연산자는 보통 트리거에 사용합니다.

 

trigger1 = var(0) := 50

 

이런 식으로 사용합니다.

 

 

 

3. 트리거의 발동 여부 판별 방법

 

trigger1 = var(0)

 

이런 트리거는 var(0) 이 0 이 아닐 때만 발동합니다.

 

trigger1 = var(0) = 3

 

이것은 var(0) 이 3 일 때만 발동합니다.

 

 

그렇다면,

 

trigger1 = var(0) := 50

 

이건 발동이 되는 트리거일까요, 아니면 발동이 되지 않는 트리거일까요?

 

 

이를 알기 위해선 지정 연산자 부분을 없애고 나머지 부분을 읽어 보면 됩니다.

 

trigger1 = var(0) := 50

 

여기서 지정 연산자 부분을 없애면

 

trigger1 = var(0)

 

이 됩니다.

 

그런데, 지정 연산자의 기능으로 인해 var(0) 은 50 이 됩니다.

 

따라서 이는

 

trigger1 = 50

 

이라고 할 수 있기 때문에 트리거가 발동됩니다.

 

 

 

4. 지정 연산자의 발동 여부 판별 방법

 

지정 연산자는 일단 읽히기만 하면 바로 발동됩니다.

 

[state ]

type = ChangeState

trigger1 = var(0) := 30

value = 0

ctrl = 1

 

이런 명령어는 ChangeState 도 발동이 되고, 동시에 var(0) 은 30 이 되게 됩니다.

 

 

하지만 아래의 경우는 조금 다릅니다.

 

 

[state ]

type = ChangeState

trigger1 = 1

trigger1 = alive

trigger2 = var(0) := 30

value = 0

ctrl = 1

 

trigger1 에 있는 조건은 1 과 alive 입니다.

 

평상시에는 이 두 조건이 항상 만족되기 때문에 ChangeState 는 항상 발동되게 됩니다.

 

따라서 명령어가 이미 발동됨을 확인했기에 trigger2 는 읽을 필요가 없게 됩니다.

 

그 때문에 지정 연산자가 발동되지 않고, var(0) 은 30 이 되지 않게 됩니다.

추천0

댓글목록

등록된 댓글이 없습니다.


개인정보취급방침 이용약관 모바일 버전으로 보기 상단으로

Copyright © 무겐 어소시에이션 All rights reserved.