다음을 통해 공유


기호 및 연산자 참조

이 문서에는 F#에서 사용되는 기호 및 연산자를 설명하는 테이블이 포함되어 있으며 각각에 대한 간략한 설명을 제공합니다. 일부 기호 및 연산자는 여러 역할에서 사용되는 경우 둘 이상의 항목을 갖습니다.

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

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

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

문자열 및 식별자 기호

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

기호 또는 연산자 링크 설명
" 문자열 텍스트 문자열을 구분합니다.
@" 문자열 백슬라이쉬 및 기타 문자를 포함할 수 있는 축자 텍스트 문자열을 시작합니다.
""" 문자열 백슬라시, 큰따옴표 및 기타 문자를 포함할 수 있는 큰따옴표로 묶인 텍스트 문자열을 구분합니다.
$" 보간된 문자열 보간된 문자열을 시작합니다.
' 리터럴 단일 문자 리터럴을 구분합니다.
``...`` 언어 키워드와 같이 법적 식별자가 아닌 식별자를 구분합니다.
\ 문자열 다음 문자를 이스케이프합니다. 문자 및 문자열 리터럴에 사용됩니다.

산술 연산자

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

기호 또는 연산자 링크 설명
+ 산술 연산자
  • 이진 연산자로 사용되는 경우 왼쪽과 오른쪽을 추가합니다.
  • 단항 연산자로 사용되는 경우 양수입니다. (공식적으로는 부호가 변경되지 않은 동일한 값을 생성합니다.)
- 산술 연산자
  • 이진 연산자로 사용되는 경우 왼쪽에서 오른쪽을 뺍니다.
  • 단항 연산자로 사용되는 경우 부정 연산을 수행합니다.
* 산술 연산자

튜플

측정 단위
  • 이진 연산자로 사용되는 경우 왼쪽과 오른쪽을 곱합니다.
  • 형식에서 튜플의 페어링을 나타냅니다.
  • 측정값 형식 단위에 사용됩니다.
/ 산술 연산자

측정 단위
  • 왼쪽(숫자)을 오른쪽(분모)으로 나눕니다.
  • 측정값 형식 단위에 사용됩니다.
% 산술 연산자 정수 나머지를 계산합니다.
** 산술 연산자 지수 연산(즉,x ** yx )을 y계산합니다.

비교 연산자

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

기호 또는 연산자 링크 설명
< 산술 연산자 보다 작은 연산을 계산합니다.
<> 산술 연산자 true 왼쪽이 오른쪽과 같지 않으면 반환하고, 그렇지 않으면 false를 반환합니다.
<= 산술 연산자 true 왼쪽이 오른쪽보다 작거나 같으면 반환하고, 그렇지 않으면 반환합니다false.
= 산술 연산자 true 왼쪽이 오른쪽과 같으면 반환하고, 그렇지 않으면 반환합니다false.
> 산술 연산자 왼쪽이 오른쪽보다 크면 반환 true 하고, 그렇지 않으면 반환합니다 false.
>= 산술 연산자 true 왼쪽이 오른쪽보다 크거나 같으면 반환하고, 그렇지 않으면 반환합니다false.

부울 연산자

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

기호 또는 연산자 링크 설명
&& 부울 연산자 부울 AND 작업을 계산합니다.
|| 부울 연산자 부울 OR 연산을 계산합니다.

비트 연산자

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

기호 또는 연산자 링크 설명
&&& 비트 연산자 비트 AND 연산을 계산합니다.
<<< 비트 연산자 왼쪽에 있는 수량의 비트를 오른쪽에 지정된 비트 수만큼 왼쪽으로 이동합니다.
>>> 비트 연산자 오른쪽에 지정된 위치 수만큼 왼쪽에서 오른쪽으로 수량의 비트를 이동합니다.
^^^ 비트 연산자 비트 배타적 OR 연산을 계산합니다.
||| 비트 연산자 비트 OR 연산을 계산합니다.
~~~ 비트 연산자 비트 NOT 연산을 계산합니다.

함수 기호 및 연산자

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

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

형식 기호 및 연산자

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

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

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

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

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

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

인덱싱된 속성

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

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

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

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

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

명령적 식에 사용되는 기호

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

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

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

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

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

기호 또는 연산자 링크 설명
-> 시퀀스 시퀀스 식에서 식을 생성합니다. 키워드에 do yield 해당합니다.
! 계산 식 키워드 다음에는 계산 식에 의해 제어되는 키워드 동작의 수정된 버전을 나타냅니다.

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

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

기호 또는 연산자 링크 설명
-> 일치 표현식 일치 식에 사용됩니다.
& 패턴 일치
  • 다른 언어와 상호 운용할 때 사용할 변경 가능한 값의 주소를 계산합니다.
  • AND 패턴에 사용됩니다.
_ 일치 표현식

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

선언에 사용되는 추가 기호

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

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

따옴표에 사용되는 추가 기호

다음 표에서는 코드 따옴표와 관련된 기호에 대해 설명합니다.

기호 또는 연산자 링크 설명
<@...@> 코드 따옴표 형식화된 코드 따옴표를 구분합니다.
<@@...@@> 코드 따옴표 형식화되지 않은 코드 따옴표를 구분합니다.
% 코드 따옴표 식을 형식화된 코드 따옴표로 접합하는 데 사용됩니다.
%% 코드 따옴표 식을 형식화되지 않은 코드 따옴표로 접합하는 데 사용됩니다.

동적 조회 연산자

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

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

쿼리의 Nullable 연산자

Nullable 연산 자는 쿼리 식에서 사용하도록 정의됩니다. 다음 표에서는 이러한 연산자를 보여줍니다.

기호 또는 연산자 링크 설명
%? Nullable 연산자 오른쪽이 nullable 형식인 경우 정수 나머지를 계산합니다.
*? Nullable 연산자 오른쪽이 nullable 형식인 경우 왼쪽과 오른쪽을 곱합니다.
+? Nullable 연산자 오른쪽이 nullable 형식인 경우 왼쪽과 오른쪽을 추가합니다.
-? Nullable 연산자 오른쪽이 nullable 형식인 경우 왼쪽에서 오른쪽을 뺍니다.
/? Nullable 연산자 오른쪽이 nullable 형식인 경우 왼쪽을 오른쪽으로 나눕니다.
<? Nullable 연산자 오른쪽이 nullable 형식인 경우 보다 작음 연산을 계산합니다.
<>? Nullable 연산자 오른쪽이 nullable 형식인 경우 "같지 않음" 작업을 계산합니다.
<=? Nullable 연산자 오른쪽이 nullable 형식인 경우 "작거나 같음" 작업을 계산합니다.
=? Nullable 연산자 오른쪽이 nullable 형식인 경우 "equal" 연산을 계산합니다.
>? Nullable 연산자 오른쪽이 nullable 형식인 경우 "보다 큼" 작업을 계산합니다.
>=? Nullable 연산자 오른쪽이 nullable 형식인 경우 "크거나 같음" 연산을 계산합니다.
?>=, ?>, ?<=, ?<, ?=, ?<>, ?+?-, ?*?/ Nullable 연산자 ?이 없는 해당 연산자와 동일합니다. 접두사입니다. 여기서 nullable 형식은 왼쪽에 있습니다.
>=?, >?, <=?, <?, =?, <>?, +?-?, *?/? Nullable 연산자 ?이 없는 해당 연산자와 동일합니다. nullable 형식이 오른쪽에 있는 접미사입니다.
?>=?, ?>?, ?<=?, ?<?, ?=?, ?<>?, ?+??-?, ?*??/? Nullable 연산자 둘 다 null 허용 형식인 주변 물음표가 없는 해당 연산자와 동일합니다.

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

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

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

연산자 우선 순위

다음 표에서는 가장 낮은 우선 순위부터 가장 높은 우선 순위까지 순서대로 연산자 및 기타 식 키워드의 우선 순위(F#)를 보여 줍니다. 또한 해당하는 경우 결합성도 나열됩니다.

오퍼레이터 연관성
as 오른쪽
when 오른쪽
| (파이프) 왼쪽
; 오른쪽
let 비연관
function, fun, matchtry 비연관
if 비연관
not 오른쪽
-> 오른쪽
:= 오른쪽
, 비연관
or, || 왼쪽
&, && 왼쪽
:>, :?> 오른쪽
< op, >op, , =|op, &op, &,$

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

(포함 ^^^)
오른쪽
:: 오른쪽
:? 연관성이 없음
- op, +op 이러한 기호의 접두사 사용에 적용됩니다.
* op, /op, %op 왼쪽
** op 오른쪽
f x (함수 애플리케이션)

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

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

참고하십시오