Share via


シンボルと演算子のリファレンス (F#)

このトピックでは、F# 言語で使用するシンボルと演算子の表を示します。

シンボルと演算子の表

次の表では、F# 言語で使用されるシンボルについて説明し、より詳しい情報が提供されるトピックへのリンクと、シンボルの使用方法の一部の簡単な説明を示します。 シンボルは、ASCII 文字セットの順序に従って並べられています。

シンボルまたは演算子

リンク

説明

!

参照セル (F#)

コンピュテーション式 (F#)

  • 参照セルを逆参照します。

  • キーワードの後に付いて、ワークフローで制御されるキーワードの動作の変更済みバージョンを示します。

!=

該当なし。

  • F# では使用されません。 非等値演算には <> を使用します。

"

リテラル (F#)

文字列 (F#)

  • テキスト文字列を区切ります。

"""

文字列 (F#)

逐語的テキスト文字列を区切ります。 文字列内で単一引用符を使用することで引用符文字を示すことができる @"..." とは異なります。

#

コンパイラ ディレクティブ (F#)

フレキシブル型 (F#)

  • #light のように、プリプロセッサまたはコンパイラ ディレクティブの前に付けられます。

  • 型で使用されている場合は、フレキシブル型を示します。これは、型またはその派生型のいずれかを指します。

$

詳細情報はありません。

  • コンパイラで生成された特定の変数名と関数名に、内部的に使用されます。

%

算術演算子 (F#)

コード クォート (F#)

  • 整数の剰余を計算します。

  • 型指定されたコード クォートに式をスプライスするために使用されます。

%%

コード クォート (F#)

  • 型指定されていないコード クォートに式をスプライスするために使用されます。

%?

Null 許容の演算子 (F#)

  1. 右辺が null 許容型である場合に、整数の剰余を計算します。

&

match 式 (F#)

  • 他の言語と相互運用するときに使用するための、変更可能な値のアドレスを計算します。

  • AND パターンで使用されます。

&&

ブール演算子 (F#)

  • ブール値の AND 演算を実行します。

&&&

ビット処理演算子 (F#)

  • ビットごとの AND 演算を実行します。

'

リテラル (F#)

自動ジェネリック化 (F#)

  • 1 文字のリテラルを区切ります。

  • ジェネリック型パラメーターを示します。

``...``

詳細情報はありません。

  • 言語のキーワードなど、区切らなければ有効な識別子にならない識別子を区切ります。

( )

unit 型 (F#)

  • unit 型の 1 つの値を表します。

(...)

タプル (F#)

演算子のオーバーロード (F#)

  • 式が評価される順序を示します。

  • タプルを区切ります。

  • 演算子の定義で使用されます。

(*...*)

  • 複数行にわたる可能性のあるコメントを区切ります。

(|...|)

アクティブ パターン (F#)

  • アクティブ パターンを区切ります。 バナナ クリップとも呼ばれます。

*

算術演算子 (F#)

タプル (F#)

測定単位 (F#)

  • 二項演算子として使用されている場合は、左辺と右辺を乗算します。

  • 型では、タプルのペアリングを示します。

  • 測定単位の型で使用されます。

*?

Null 許容の演算子 (F#)

  1. 右辺が null 許容型である場合は、左辺と右辺を乗算します。

**

算術演算子 (F#)

  • 指数演算を実行します (x * * y は x の y 乗を意味します)。

+

算術演算子 (F#)

  • 二項演算子として使用されている場合は、左辺と右辺を加算します。

  • 単項演算子として使用されている場合は、正数を示します。 (正式には、同じ値を符号を変更しないで生成します。)

+?

Null 許容の演算子 (F#)

  1. 右辺が null 許容型である場合は、左辺と右辺を加算します。

,

タプル (F#)

  • タプルの要素または型パラメーターを区切ります。

-

算術演算子 (F#)

  • 二項演算子として使用されている場合は、左辺から右辺を減算します。

  • 単項演算子として使用されている場合は、否定演算を実行します。

-

Null 許容の演算子 (F#)

  1. 右辺が null 許容型である場合は、左辺から右辺を減算します。

->

関数 (F#)

match 式 (F#)

  • 関数の型では、引数と戻り値を区切ります。

  • (シーケンス式の) 式を生成します。yield キーワードと等価です。

  • match 式で使用されます。

.

メンバー (F#)

プリミティブ型 (F#)

  • メンバーにアクセスし、完全修飾名の個々の名前を区切ります。

  • 浮動小数点数の小数点を示します。

..

ループ: for...in 式 (F#)

  • 範囲を指定します。

.. ..

ループ: for...in 式 (F#)

  • インクリメントと共に範囲を指定します。

.[...]

配列 (F#)

  • 配列要素にアクセスします。

/

算術演算子 (F#)

測定単位 (F#)

  • 左辺 (分子) を右辺 (分母) で除算します。

  • 測定単位の型で使用されます。

/?

Null 許容の演算子 (F#)

  1. 右辺が null 許容型である場合は、左辺を右辺で除算します。

//

  • 単一行コメントの先頭を示します。

///

XML ドキュメント (F#)

  • XML コメントを示します。

:

関数 (F#)

  • 型注釈では、パラメーター名またはメンバー名とその型を区切ります。

::

リスト (F#)

match 式 (F#)

  • リストを作成します。 左辺の要素が右辺のリストに追加されます。

  • リストの各部分を区切るためにパターン マッチで使用されます。

:=

参照セル (F#)

  • 参照セルに値を割り当てます。

:>

キャストと変換 (F#)

  • 型を階層の上位の型に変換します。

:?

match 式 (F#)

  • 指定された型に値が一致する場合は true を返します。それ以外の場合は、false を返します (型テスト演算子)。

:?>

キャストと変換 (F#)

  • 型を階層の下位にある型に変換します。

;

冗語構文 (F#)

リスト (F#)

レコード (F#)

  • 式を区切ります (ほとんどの場合、冗語構文で使用されます)。

  • リストの要素を区切ります。

  • レコードのフィールドを区切ります。

<

算術演算子 (F#)

  • 小なり演算を実行します。

<?

Null 許容の演算子 (F#)

右辺が null 許容型である場合は、小なり演算を実行します。

<<

関数 (F#)

  • 2 つの関数を逆順で合成します。2 つ目の関数が先に実行されます (後方合成演算子)。

<<<

ビット処理演算子 (F#)

  • 左辺にある数のビットを、右辺に指定されたビット数だけ左にシフトします。

<-

値 (F#)

  • 値を変数に代入します。

<...>

自動ジェネリック化 (F#)

  • 型パラメーターを区切ります。

<>

算術演算子 (F#)

  • 左辺が右辺と等しくない場合は true を返します。それ以外の場合は false を返します。

<>?

Null 許容の演算子 (F#)

  1. 右辺が null 許容型である場合は、"等しくない" 演算を実行します。

<=

算術演算子 (F#)

  • 左辺が右辺以下である場合は true を返します。それ以外の場合は false を返します。

<=?

Null 許容の演算子 (F#)

  1. 右辺が null 許容型である場合は、"以下" 演算を実行します。

<|

関数 (F#)

  • 右辺の式の結果を左辺の関数に渡します (後方パイプ演算子)。

<||

Operators.( <|| )<'T1,'T2,'U> 関数 (F#)

  • 右辺にある 2 つの引数のタプルを左辺の関数に渡します。

<|||

Operators.( <||| )<'T1,'T2,'T3,'U> 関数 (F#)

  • 右辺にある 3 つの引数のタプルを左辺の関数に渡します。

<@...@>

コード クォート (F#)

  • 型指定されたコード クォートを区切ります。

<@@...@@>

コード クォート (F#)

  • 型指定されていないコード クォートを区切ります。

=

算術演算子 (F#)

  • 左辺が右辺と等しい場合は true を返します。それ以外の場合は false を返します。

=?

Null 許容の演算子 (F#)

  1. 右辺が null 許容型である場合は、"等しい" 演算を実行します。

==

該当なし。

  • F# では使用されません。 等値演算には = を使用します。

>

算術演算子 (F#)

  • 左辺が右辺より大きい場合は true を返します。それ以外の場合は false を返します。

>?

Null 許容の演算子 (F#)

  1. 右辺が null 許容型である場合は、"大なり" 演算を実行します。

>>

関数 (F#)

  • 2 つの関数を合成します (前方合成演算子)。

>>>

ビット処理演算子 (F#)

  • 左辺にある数のビットを、右辺に指定された桁数だけ右にシフトします。

>=

算術演算子 (F#)

  • 右辺が左辺以上である場合は true を返します。それ以外の場合は false を返します。

>=?

Null 許容の演算子 (F#)

  1. 右辺が null 許容型である場合は、"以上" 演算を実行します。

?

パラメーターと引数 (F#)

  • 省略可能な引数を指定します。

  • 動的メソッドや動的プロパティの呼び出しのための演算子として使用されます。 独自の実装を提供する必要があります。

? ... <- ...

詳細情報はありません。

  • 動的プロパティを設定するための演算子として使用されます。 独自の実装を提供する必要があります。

?>=, ?>, ?<=, ?<, ?=, ?<>, ?+, ?-, ?*, ?/

Null 許容の演算子 (F#)

  1. null 許容型が左辺にある場合、 ? プレフィックスがない、対応する演算子と等価です。

>=?, >?, <=?, <?, =?, <>?, +?, -?, *?, /?

Null 許容の演算子 (F#)

  1. null 許容型が右辺にある場合、 ? サフィックスがない、対応する演算子と等価です。

?>=?, ?>?, ?<=?, ?<?, ?=?, ?<>?, ?+?, ?-?, ?*?, ?/?

Null 許容の演算子 (F#)

  1. 両辺が null 許容型である場合、前後に疑問符がない、対応する演算子と等価です。

@

リスト (F#)

文字列 (F#)

  • 2 つのリストを連結します。

  • 文字列リテラルの前にある場合、文字列は逐語的に解釈され、エスケープ文字は解釈されないことを示します。

[...]

リスト (F#)

  • リストの要素を区切ります。

[|...|]

配列 (F#)

  • 配列の要素を区切ります。

[<...>]

属性 (F#)

  • 属性を区切ります。

\

文字列 (F#)

  • 次の文字をエスケープします。文字や文字列リテラルで使用されます。

^

静的に解決された型パラメーター (F#)

文字列 (F#)

  • 実行時ではなくコンパイル時に解決する必要がある型パラメーターを指定します。

  • 文字列を連結します。

^^^

ビット処理演算子 (F#)

  • ビットごとの排他的 OR 演算を実行します。

_

match 式 (F#)

ジェネリック (F#)

  • ワイルドカード パターンを示します。

  • 匿名ジェネリック パラメーターを指定します。

`

自動ジェネリック化 (F#)

  • ジェネリック型パラメーターを示すために内部的に使用されます。

{...}

シーケンス (F#)

レコード (F#)

  • シーケンス式とコンピュテーション式を区切ります。

  • レコードの定義で使用されます。

|

match 式 (F#)

  • 個々の一致ケース、個々の判別共用体ケース、および列挙値を区切ります。

||

ブール演算子 (F#)

  • ブール型の OR 演算を実行します。

|||

ビット処理演算子 (F#)

  • ビットごとの OR 演算を実行します。

|>

関数 (F#)

  • 左辺の結果を関数を右辺の関数に渡します (前方パイプ演算子)。

||>

Operators.( ||> )<'T1,'T2,'U> 関数 (F#)

  • 左辺の 2 つの引数のタプルを右辺の関数に渡します。

|||>

Operators.( |||> )<'T1,'T2,'T3,'U> 関数 (F#)

  1. 左辺の 3 つの引数のタプルを右辺の関数に渡します。

~~

演算子のオーバーロード (F#)

  • 単項否定演算子のオーバー ロードを宣言するために使用されます。

~~~

ビット処理演算子 (F#)

  • ビットごとの NOT 演算を実行します。

~-

演算子のオーバーロード (F#)

  • 単項マイナス演算子のオーバー ロードを宣言するために使用されます。

~+

演算子のオーバーロード (F#)

  • 単項プラス演算子のオーバー ロードを宣言するために使用されます。

演算子の優先順位

次の表に、F# 言語で使用される演算子とその他の式のキーワードの優先順位を、低いものから順に示します。 該当する場合には、結合規則も示します。

演算子

結合規則

as

Right

when

Right

| (パイプ)

Left

;

Right

let

非結合

function, fun, match, try

非結合

if

非結合

->

Right

:=

Right

,

非結合

or, ||

Left

&, &&

Left

<op, >op, =, |op, &op

Left

&&&, |||, ^^^, ~~~, <<<, >>>

Left

^op

Right

::

Right

:?>, :?

非結合

-op, +op, (バイナリ)

Left

*op, /op, %op

Left

**op

Right

f x (関数適用)

Left

| (パターン マッチ)

Right

前置演算子 (+op, -op, %, %%, &, &&, !op, ~op)

Left

.

Left

f(x)

Left

f<types>

Left

F# はカスタム演算子のオーバー ロードをサポートしています。 これは、独自の演算子を定義できることを意味します。 上記の表では、op に、組み込みまたはユーザー定義の有効な (場合によっては空の) 演算子文字シーケンスを指定できます。 つまり、この表を使用して、カスタム演算子に使用する文字のシーケンスを決定し、目的のレベルの優先順位を実現することができます。 先行する . 文字は、コンパイラが優先順位を決定する場合は無視されます。

参照

関連項目

演算子のオーバーロード (F#)

その他の技術情報

F# 言語リファレンス