수색…
잘못된 연산자 사용
OCaml에는 부동 소수와 정수에 대한 다른 산술 연산자가 있습니다. 또한이 연산자는 2 개의 부동 소수점 또는 2 개의 정수에서만 사용할 수 있습니다. 다음은 OCaml에서 유효하지 않은 표현식입니다.
1.0 + 2.0
1 + 2.0
1 +. 2
1 +. 2.0
각각에 대한 올바른 표현식은 각각 다음과 같습니다.
1. +. 2.
float_of_int 1 +. 2.
1 + 2
float_of_int 1 +. 2.
OCaml에서 자동으로 float에 정수를 캐스팅하거나 그 반대의 경우는 없습니다. 모든 것이 명백합니다. 다음은 정수 및 부동 소수점 연산자 목록입니다.
| 조작 | 정수 연산자 | 플로트 연산자 |
|---|---|---|
| 부가 | a + b | c +. d |
| 빼기 | a - b | c -. d |
| 곱셈 | a * b | c *. c |
| 분할 | a / b | c /. d |
| 모듈러스 | a mod b | modfloat cd |
| 지수 계산 | 해당 사항 없음 | c ** d |
여기서 a 와 b 는 정수이고 c 와 d 는 실수입니다.
함수 인자 주위에 괄호를 잊어 버림
일반적인 실수는 괄호로 둘러싼 복합 함수 인수를 잊어서 유형 오류를 유발하는 것입니다.
# string_of_int 1+1;;
Error: This expression has type string but an expression was expected of type int
이는 우선 순위 때문입니다. 실제로 위의 내용은
# (string_of_int 1) + 1;;
그것은 틀렸다. 올바른 구문은 다음과 같습니다.
# string_of_int (1+1);;
- : string = "2"
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow