기호 및 연산자 참조

이 문서에는 F#에서 사용되는 기호와 연산자를 설명하는 표가 포함되어 있으며, 각각에 대한 짧은 설명을 제공합니다. 일부 기호와 연산자는 여러 역할에서 사용되는 경우 항목이 두 개 이상 있습니다.

주석, 컴파일러 지시문, 특성 기호

다음 표에서는 주석, 컴파일러 지시문, 특성과 관련된 기호를 설명합니다.

기호 또는 연산자 링크 Description
(*...*) 여러 줄로 표시될 수 있는 주석을 구분합니다.
// 한 줄로 된 주석의 시작을 나타냅니다.
/// XML 문서 XML 주석을 나타냅니다.
# 컴파일러 지시문 전처리기 또는 컴파일러 지시문에 접두사를 추가합니다.
[<...>] 특성 특성을 구분합니다.

문자열 및 식별자 기호

다음 표에서는 문자열과 관련된 기호를 설명합니다.

기호 또는 연산자 링크 Description
" 문자열 텍스트 문자열을 구분합니다.
@" 문자열 백슬래시 및 기타 문자를 포함할 수 있는 축자 텍스트 문자열을 시작합니다.
""" 문자열 백슬래시, 큰따옴표 및 기타 문자를 포함할 수 있는 세 개의 따옴표로 묶은 텍스트 문자열을 구분합니다.
$" 보간된 문자열 보간된 문자열을 시작합니다.
' 리터럴 단일 문자 리터럴을 구분합니다.
``...`` 일반적으로는 유효한 식별자가 아닌 언어 키워드 등의 식별자를 구분합니다.
\ 문자열 다음 문자를 이스케이프합니다. 문자 및 문자열 리터럴에 사용됩니다.

산술 연산자

다음 표에서는 산술 연산자에 대해 설명합니다.

기호 또는 연산자 링크 Description
+ 산술 연산자
  • 이항 연산자로 사용하는 경우 좌변과 우변을 더합니다.
  • 단항 연산자로 사용하는 경우에는 양의 수량을 나타냅니다. 공식적으로 이 항목은 부호가 변경되지 않은 동일 값을 생성합니다.
- 산술 연산자
  • 이항 연산자로 사용하는 경우 좌변에서 우변을 뺍니다.
  • 단항 연산자로 사용하는 경우 부정 연산을 수행합니다.
* 산술 연산자

튜플

측정 단위
  • 이항 연산자로 사용하는 경우 좌변과 우변을 곱합니다.
  • 형식의 경우 튜플의 쌍을 나타냅니다.
  • 측정 단위 형식에서 사용됩니다.
/ 산술 연산자

측정 단위
  • 좌변(분자)으로 우변(분모)을 나눕니다.
  • 측정 단위 형식에서 사용됩니다.
% 산술 연산자 정수 나머지를 계산합니다.
** 산술 연산자 지수 연산을 계산합니다. x ** yxy제곱을 나타냅니다.

비교 연산자

다음 표에서는 비교 연산자에 대해 설명합니다.

기호 또는 연산자 링크 Description
< 산술 연산자 작음 연산을 계산합니다.
<> 산술 연산자 좌변이 우변과 같지 않으면 true를 반환하고 같으면 false를 반환합니다.
<= 산술 연산자 좌변이 우변 이하이면 true를 반환하고 이상이면 false를 반환합니다.
= 산술 연산자 좌변이 우변과 같으면 true를 반환하고 같지 않으면 false를 반환합니다.
> 산술 연산자 좌변이 우변보다 크면 true를 반환하고 작거나 같으면 false를 반환합니다.
>= 산술 연산자 좌변이 우변 이상이면 true를 반환하고 작으면 false를 반환합니다.

부울 연산자

다음 표에서는 산술 및 부울 연산자 기호를 설명합니다.

기호 또는 연산자 링크 Description
&& 부울 연산자 부울 AND 연산을 수행합니다.
|| 부울 연산자 부울 OR 연산을 계산합니다.

비트 연산자

다음 표에서는 비트 연산자에 대해 설명합니다.

기호 또는 연산자 링크 Description
&&& 비트 연산자 비트 AND 연산을 계산합니다.
<<< 비트 연산자 좌변의 수량 비트를 우변에 지정된 비트 수만큼 좌변으로 시프트합니다.
>>> 비트 연산자 좌변의 수량 비트를 우변에 지정된 자릿수만큼 우변으로 시프트합니다.
^^^ 비트 연산자 배타적 비트 OR 연산을 계산합니다.
||| 비트 연산자 비트 OR 연산을 계산합니다.
~~~ 비트 연산자 비트 NOT 연산을 계산합니다.

함수 기호 및 연산자

다음 표에서는 함수와 관련된 연산자 및 기호를 설명합니다.

기호 또는 연산자 링크 Description
-> 함수 함수 식에서 입력 패턴을 출력 식과 구분합니다.
|> 함수 좌변의 결과를 우변의 함수에 전달합니다(정방향 파이프 연산자).
||> ( || )<'T1,'T2,'U> 함수 좌변의 두 인수 튜플을 우변의 함수에 전달합니다.
|||> ( ||| )<'T1,'T2,'T3,'U> 함수 좌변의 세 인수 튜플을 우변의 함수에 전달합니다.
>> 함수 두 함수를 작성합니다(정방향 컴퍼지션 연산자).
<< 함수 두 번째 함수가 먼저 실행되도록 두 함수를 역순으로 작성합니다(역방향 컴퍼지션 연산자).
<| 함수 우변의 식 결과를 좌변의 함수에 전달합니다(역방향 파이프 연산자).
<|| ( || )<' T1,'T2,'U> 함수 우변의 두 인수 튜플을 좌변의 함수에 전달합니다.
<||| ( ||| )<' T1,'T2,'T3,'U> 함수 우변의 세 인수 튜플을 좌변의 함수에 전달합니다.

형식 기호 및 연산자

다음 표에서는 형식 주석 및 형식 테스트와 관련된 기호를 설명합니다.

기호 또는 연산자 링크 Description
-> 함수 함수 형식에서 인수와 반환 값을 구분하고 시퀀스 식에서 결과를 생성합니다.
: 함수 형식 주석에서 매개 변수 또는 멤버 이름을 해당 형식에서 분리합니다.
:> 캐스팅 및 변환 특정 형식을 계층 구조의 상위 수준 형식으로 변환합니다.
:? 일치 식 값이 지정한 형식(하위 형식인 경우 포함)과 일치하면 true를 반환하고 그렇지 않으면 false를 반환합니다(형식 테스트 연산자).
:?> 캐스팅 및 변환 특정 형식을 계층 구조의 하위 수준 형식으로 변환합니다.
# 유연한 형식 형식에 사용하는 경우 형식 또는 해당 파생 형식 중 하나를 참조하는 유연한 형식을 나타냅니다.
' 자동 일반화 제네릭 형식 매개 변수를 나타냅니다.
<...> 자동 일반화 형식 매개 변수를 구분합니다.
^ 정적으로 확인된 형식 매개 변수

문자열
  • 런타임이 아닌 컴파일 시간에 확인해야 하는 형식 매개 변수를 지정합니다.
  • 문자열을 연결합니다.
{} 클래스 또는 레코드 키워드와 함께 type 사용할 경우 클래스 또는 레코드를 구분합니다. 형식은 멤버가 선언되거나 키워드가 class 사용되는 클래스입니다. 그렇지 않으면 레코드입니다.
{||} 익명 레코드 익명 레코드를 지정합니다.

멤버 조회 및 조각 식에 사용되는 기호

다음 표에서는 멤버 조회 및 조각 식에 사용되는 추가 기호를 설명합니다.

기호 또는 연산자 링크 Description
. 멤버 멤버에 액세스하고 개별 이름을 정규화된 이름으로 구분합니다.
[...] 또는 .[...] 배열

인덱싱된 속성

조각 식
배열, 문자열 또는 컬렉션으로 인덱싱하거나 컬렉션 조각을 가져옵니다.

튜플, 목록, 배열, 단위 식 및 패턴에 사용되는 기호

다음 표에서는 튜플, 목록, 단위 값, 배열과 관련된 기호를 설명합니다.

기호 또는 연산자 링크 Description
( ) 단위 형식 단위 형식의 단일 값을 나타냅니다.
, 튜플 튜플의 요소나 형식 매개 변수를 구분합니다.
:: 목록

일치 식
  • 목록을 만듭니다. 왼쪽의 요소가 오른쪽의 목록 앞에 추가됩니다.
  • 패턴 일치에서 목록의 파트를 구분하는 데 사용됩니다.
@ 목록 두 목록을 연결합니다.
[...] 목록 목록의 요소를 구분합니다.
[|...|] 배열 배열의 요소를 구분합니다.

명령형 식에 사용되는 기호

다음 표에서는 식에 사용되는 추가 기호를 설명합니다.

기호 또는 연산자 링크 Description
<- 변수에 값을 할당합니다.
; 자세한 구문

식을 구분합니다(대개 자세한 구문에서 사용됨). 또한 목록의 요소 또는 레코드의 필드를 구분합니다.

시퀀스 및 계산 식에 사용되는 추가 기호

다음 표에서는 시퀀스계산 식에 사용되는 추가 기호를 설명합니다.

기호 또는 연산자 링크 Description
-> 시퀀스 시퀀스 식에서 식을 생성하며, do yield 키워드와 동일합니다.
! 계산 식 키워드 뒤에서 계산 식이 제어하는 키워드 동작의 수정된 버전을 나타냅니다.

일치 패턴에 사용되는 추가 기호

다음 표에서는 패턴 일치와 관련된 기호를 설명합니다.

기호 또는 연산자 링크 Description
-> 일치 식 일치 식에서 사용됩니다.
& 일치 식
  • 다른 언어와 상호 작용할 때 사용하기 위해 변경할 수 있는 값의 주소를 계산합니다.
  • AND 패턴에 사용됩니다.
_ 일치 식

제네릭
  • 와일드카드 패턴을 나타냅니다.
  • 익명 제네릭 매개 변수를 지정합니다.
| 일치 식 개별 일치 케이스, 구분된 개별 공용 구조체 케이스 및 열거형 값을 구분합니다.

선언에 사용되는 추가 기호

다음 표에서는 선언과 관련된 기호를 설명합니다.

기호 또는 연산자 링크 Description
(|...|) 활성 패턴 활성 패턴 이름을 구분합니다. 바나나 클립이라고도 합니다.
? 매개 변수 및 인수 선택적 인수를 지정합니다.
~~ 연산자 오버로드 단항 부정 연산자에 대한 오버로드를 선언하는 데 사용됩니다.
~- 연산자 오버로드 단항 빼기 연산자 오버로드를 선언하는 데 사용됩니다.
~+ 연산자 오버로드 단항 더하기 연산자에 대한 오버로드를 선언하는 데 사용됩니다.

인용에 사용되는 추가 기호

다음 표에서는 코드 인용과 관련된 기호를 설명합니다.

기호 또는 연산자 링크 Description
<@...@> 코드 인용 형식화된 코드 인용을 구분합니다.
<@@...@@> 코드 인용 형식화되지 않은 코드 인용을 구분합니다.
% 코드 인용 형식화된 코드 인용에 식을 연결하는 데 사용됩니다.
%% 코드 인용 형식화되지 않은 코드 인용에 식을 연결하는 데 사용됩니다.

동적 조회 연산자

다음 표에서는 동적 조회 식에 사용되는 추가 기호를 설명합니다. 흔한 F# 프로그래밍에서 일반적으로 사용되지 않으며, 이러한 연산자의 구현은 F# 주요 라이브러리에 제공되지 않습니다.

기호 또는 연산자 링크 Description
? 동적 메서드 및 속성 호출을 위한 연산자로 사용됩니다.
? ... <- ... 동적 속성 설정 위한 연산자로 사용됩니다.

쿼리의 null 허용 연산자

null 허용 연산자쿼리 식에서 사용할 수 있도록 정의됩니다. 다음 표에 이러한 연산자가 표시되어 있습니다.

기호 또는 연산자 링크 Description
%? null 허용 연산자 우변이 nullable 형식이면 정수 나머지를 계산합니다.
*? null 허용 연산자 우변이 nullable 형식이면 좌변과 우변을 곱합니다.
+? null 허용 연산자 우변이 nullable 형식이면 좌변과 우변을 더합니다.
-? null 허용 연산자 우변이 nullable 형식이면 좌변에서 우변을 뺍니다.
/? null 허용 연산자 우변이 nullable 형식이면 좌변으로 우변을 나눕니다.
<? null 허용 연산자 우변이 nullable 형식이면 작음 연산을 계산합니다.
<>? null 허용 연산자 우변이 nullable 형식이면 "같지 않음" 연산을 계산합니다.
<=? null 허용 연산자 우변이 nullable 형식이면 "작거나 같음" 연산을 계산합니다.
=? null 허용 연산자 우변이 nullable 형식이면 "같음" 연산을 계산합니다.
>? null 허용 연산자 우변이 nullable 형식이면 “보다 큼” 연산을 계산합니다.
>=? null 허용 연산자 우변이 nullable 형식이면 "크거나 같음" 연산을 계산합니다.
?>=, ?>, ?<=, ?<, ?=, ?<>, ?+, ?-, ?*, ?/ null 허용 연산자 ? 접미사가 없는 해당 연산자와 같습니다. nullable 형식은 좌변입니다.
>=?, >?, <=?, <?, =?, <>?, +?, -?, *?, /? null 허용 연산자 ? 접미사가 없는 해당 연산자와 같습니다. nullable 형식은 우변입니다.
?>=?, ?>?, ?<=?, ?<?, ?=?, ?<>?, ?+?, ?-?, ?*?, ?/? null 허용 연산자 바깥쪽 물음표가 없는 해당 연산자와 동일합니다. 좌변과 우변이 모두 nullable 형식입니다.

참조 셀 연산자(사용되지 않음)

다음 표에서는 참조 셀과 관련된 기호를 설명합니다. F# 6부터 이러한 연산자를 사용하면 권고 메시지가 생성됩니다. 자세한 내용은 참조 셀 작업 권고 메시지를 참조하세요.

기호 또는 연산자 링크 Description
! 참조 셀 참조 셀을 역참조합니다.
:= 참조 셀 참조 셀에 값을 할당합니다.

연산자 우선 순위

다음 표에는 F#의 연산자 및 기타 식 키워드의 우선 순위 순서가 최저 우선 순위부터 최고 우선 순위 순서로 나와 있습니다. 또한 해당하는 경우에는 결합성도 표시되어 있습니다.

연산자 associativity
as 오른쪽
when 오른쪽
|(파이프) 왼쪽
; 오른쪽
let 결합성 없음
function, fun, match, try 결합성 없음
if 결합성 없음
not 오른쪽
-> 오른쪽
:= 오른쪽
, 결합성 없음
or, || 왼쪽
&, && 왼쪽
:>, :?> 오른쪽
<<, >>, , =|=, &|, &,$

(<<<, >>>, |||, &&& 포함)
왼쪽
^^

(^^^ 포함)
오른쪽
:: 오른쪽
:? 결합성 없음
--, ++ 이러한 기호의 중위 사용에 적용됨
**, //, %% 왼쪽
**** 오른쪽
f x(함수 적용)

(lazy x, assert x 포함)
왼쪽
|(패턴 일치) 오른쪽
접두사 연산자(++, -, %- , %%, &, &&, !%, ~%%) 왼쪽
. 왼쪽
f(x) 왼쪽
f<f<> 왼쪽

F#에서는 사용자 지정 연산자 오버로드를 지원합니다. 즉, 고유한 연산자를 정의할 수 있습니다. 위의 표에서 연산자는 유효한 모든 연산자 문자 시퀀스(기본 제공 또는 사용자 정의)일 수 있으며 비어 있을 수도 있습니다. 따라서 이 표를 참조하여 원하는 수준의 우선 순위를 적용하기 위해 사용자 지정 연산자에 사용할 문자의 순서를 결정할 수 있습니다. 선행 . 문자는 컴파일러에서 우선 순위를 결정할 때 무시됩니다.

참고 항목