기호 및 연산자 참조
이 문서에는 F#에서 사용되는 기호와 연산자를 설명하는 표가 포함되어 있으며, 각각에 대한 짧은 설명을 제공합니다. 일부 기호와 연산자는 여러 역할에서 사용되는 경우 항목이 두 개 이상 있습니다.
주석, 컴파일러 지시문, 특성 기호
다음 표에서는 주석, 컴파일러 지시문, 특성과 관련된 기호를 설명합니다.
기호 또는 연산자 | 링크 | Description |
---|---|---|
(*...*) |
여러 줄로 표시될 수 있는 주석을 구분합니다. | |
// |
한 줄로 된 주석의 시작을 나타냅니다. | |
/// |
XML 문서 | XML 주석을 나타냅니다. |
# |
컴파일러 지시문 | 전처리기 또는 컴파일러 지시문에 접두사를 추가합니다. |
[<...>] |
특성 | 특성을 구분합니다. |
문자열 및 식별자 기호
다음 표에서는 문자열과 관련된 기호를 설명합니다.
기호 또는 연산자 | 링크 | Description |
---|---|---|
" |
문자열 | 텍스트 문자열을 구분합니다. |
@" |
문자열 | 백슬래시 및 기타 문자를 포함할 수 있는 축자 텍스트 문자열을 시작합니다. |
""" |
문자열 | 백슬래시, 큰따옴표 및 기타 문자를 포함할 수 있는 세 개의 따옴표로 묶은 텍스트 문자열을 구분합니다. |
$" |
보간된 문자열 | 보간된 문자열을 시작합니다. |
' |
리터럴 | 단일 문자 리터럴을 구분합니다. |
``...`` |
일반적으로는 유효한 식별자가 아닌 언어 키워드 등의 식별자를 구분합니다. | |
\ |
문자열 | 다음 문자를 이스케이프합니다. 문자 및 문자열 리터럴에 사용됩니다. |
산술 연산자
다음 표에서는 산술 연산자에 대해 설명합니다.
기호 또는 연산자 | 링크 | Description |
---|---|---|
+ |
산술 연산자 |
|
- |
산술 연산자 |
|
* |
산술 연산자 튜플 측정 단위 |
|
/ |
산술 연산자 측정 단위 |
|
% |
산술 연산자 | 정수 나머지를 계산합니다. |
** |
산술 연산자 | 지수 연산을 계산합니다. x ** y 는 x 의 y 제곱을 나타냅니다. |
비교 연산자
다음 표에서는 비교 연산자에 대해 설명합니다.
기호 또는 연산자 | 링크 | 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 |
---|---|---|
-> |
일치 식 | 일치 식에서 사용됩니다. |
& |
일치 식 |
|
_ |
일치 식 제네릭 |
|
| |
일치 식 | 개별 일치 케이스, 구분된 개별 공용 구조체 케이스 및 열거형 값을 구분합니다. |
선언에 사용되는 추가 기호
다음 표에서는 선언과 관련된 기호를 설명합니다.
기호 또는 연산자 | 링크 | 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#에서는 사용자 지정 연산자 오버로드를 지원합니다. 즉, 고유한 연산자를 정의할 수 있습니다. 위의 표에서 연산자는 유효한 모든 연산자 문자 시퀀스(기본 제공 또는 사용자 정의)일 수 있으며 비어 있을 수도 있습니다. 따라서 이 표를 참조하여 원하는 수준의 우선 순위를 적용하기 위해 사용자 지정 연산자에 사용할 문자의 순서를 결정할 수 있습니다. 선행 .
문자는 컴파일러에서 우선 순위를 결정할 때 무시됩니다.