혼합 형식 규칙
일반적인 암시적 변환은 없습니다. 각 연산자는 이해하는 형식 조합의 짧은 목록을 가지고 있습니다.
그 밖의 조합은 오류를 발생시키지 않습니다. 조용히 Integer 0(순서 비교에서는 false)을
반환하고 스크립트는 계속 실행됩니다. 이상한 값 하나 때문에 작업이 중간에 중단되지 않도록 의도한
동작입니다. 따라서 형식이 잘못된 식은 오류 없이 실패하므로, 결과가 이상해 보이면 UtilityPrint로
확인하십시오.
| 연산자 | 허용되는 조합 → 결과 | 그 밖의 경우 |
|---|---|---|
+ | Text + Text → Text(연결) Integer + Integer → Integer Integer/Real 혼합 → Real | 0 |
- * | Integer ∘ Integer → Integer Integer/Real 혼합 → Real | 0 |
/ | Integer / Integer → Integer, 0 방향으로 버림(-7 / 2는 -3)Integer/Real 혼합 → Real 0으로 나누기 → 0 또는 0.0, 오류 없음 | 0 |
== != | 같은 형식 → 값으로 비교(Text는 정확히, 대/소문자 구분, Window는 핸들로) Integer와 Real → 숫자로 비교( 5 == 5.0) | 절대 같지 않음: 1 == true, "5" == 5, w == 0은 모두 false |
< <= > >= | 두 숫자(Integer/Real 혼합 허용) → 숫자 순서 Text와 Text → 서수, 대/소문자 구분(UTF-16 코드 단위: "Z" < "a") | 네 연산자 모두 false이므로 여기서는 !(a < b)가 a >= b를 뜻하지 않습니다 |
&& || ! | 모든 형식, 참/거짓 판정을 거쳐 → Bool | |
& | ^ | Integer ∘ Integer → Integer | 0(Bool이나 Real 피연산자도 해당: true & true는 0) |
<< >> | Integer를 Integer 0–63만큼 → Integer. >>는 부호를 유지합니다: -16 >> 2는 -4. | 0, 0보다 작거나 63보다 큰 이동 크기 포함 |
단항 - | Integer → Integer, Real → Real | 0 |
~ | Integer → Integer(~0은 -1) | 0 |
형식 간 변환:
| 원래 형식 → 대상 형식 | 방법 |
|---|---|
| Integer → Real | Real로 선언된 기본 제공 함수 매개 변수에 전달하면 자동으로 변환됩니다. 그 밖에서는 n * 1.0(Real이 포함된 산술은 Real을 반환) |
| Real → Integer | MathRound(r)(0.5는 0에서 먼 쪽으로), MathFloor(r) 또는 MathCeil(r) |
| 모든 형식 → Text | StringFormat("{0}", value, "") |
| Bool → Integer | if (b) n = 1; else n = 0; |
| Text → 숫자 | 사람이 입력한 텍스트(사용자의 지역 형식. 자릿수 그룹은 이 형식을 따라야 하므로 한국어(대한민국) 사용자에게 1,5는 숫자가 아님)에는 StringToNumber(text, false), 기계가 만든 텍스트(. 소수점, 그룹 구분 없음)에는 true를 사용합니다. 정수이면 Integer, 아니면 Real입니다. 텍스트가 숫자가 아닐 수 있으면 먼저 StringIsNumber를 사용하십시오(이 예제 참조). |
| 숫자 → Text | StringFromNumber(n, decimals, invariantCulture), 필요한 만큼의 자릿수는 decimals -1 |
| Integer → 16진수 Text | 이를 수행하는 기본 제공 함수는 없습니다. 시프트로 만드십시오(이 예제 참조). |