수색…


잘못된 연산자 사용

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

여기서 ab 는 정수이고 cd 는 실수입니다.

함수 인자 주위에 괄호를 잊어 버림

일반적인 실수는 괄호로 둘러싼 복합 함수 인수를 잊어서 유형 오류를 유발하는 것입니다.

# 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