Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

プリミティブ型

💡 お知らせ: このドキュメントはAIによって翻訳されています。表現に違和感がある場合は、原文(英語)を参照してください。

Flix は以下のプリミティブ型をサポートしています:

構文説明
Unit()Unit 値
Booltrue, false真偽値
Char'a', 'b', 'c'文字1
Float320.0f32, 21.42f32, -21.42f3232ビット浮動小数点数
Float640.0f64, 21.42f64, -21.42f6464ビット浮動小数点数
Int80i8, 1i8, -1i8, 127i8, -128i8符号付き8ビット整数
Int160i16, 123i16, -123i16符号付き16ビット整数
Int320i32, 123i32, -123i32符号付き32ビット整数
Int640i64, 123i64, -123i64符号付き64ビット整数
String"hello", "world"文字列値
BigInt0ii, 123ii, -123ii任意精度整数
BigDecimal0.0ff, 123.45ff, -123.45ff任意精度小数

Float64Int32 の値はサフィックスなしで記述できます。 つまり、123.0f64 は単に 123.0 と、123i32123 と書くことができます。

リテラル

Flix には List(リスト)、Set(セット)、Map(マップ)、正規表現のための組み込みの糖衣構文があります。

List リテラル

List リテラルは中置演算子 :: を使って記述します。例えば:

1 :: 2 :: 3 :: Nil

これは以下の糖衣構文です:

Cons(1, Cons(2, Cons(3, Nil)))

また、同じ List は以下のようにも書けます:

List#{1, 2, 3}

Set リテラル

Set リテラルは Set#{v1, v2, ...} という記法で記述します。例えば:

Set#{1, 2, 3}

これは以下の糖衣構文です:

Set.insert(3, Set.insert(2, Set.insert(1, Set.empty())))

要素は左から右へ挿入されるため、1 が最初に挿入されることに注意してください。

Map リテラル

Map リテラルは Map#{k1 => v1, k2 => v2, ...} という記法で記述します。 例えば:

Map#{1 => "Hello", 2 => "World"}

これは以下の糖衣構文です:

Map.insert(2, "World", Map.insert(1, "Hello", Map.empty()))

上記の Set と同様に、エントリは左から右へ挿入されることに注意してください。特に、複数のエントリが同じキーを持つ場合、最も右のエントリが以前の値を上書きします。

正規表現リテラル

正規表現リテラルは regex"..." という記法で記述します。例えば:

Regex.isMatch(regex"abc", "abc")

さらに、正規表現リテラルは regex"\\..." という記法で正規表現のエスケープシーケンスをサポートしています。例えば:

Regex.isMatch(regex"\\w", "W")

  1. より正確には、Char 値は単一の UTF-16 コードユニットに対応します。UTF-16 は可変長エンコーディングです: 一部の Unicode コードポイントは単一の UTF-16 コードユニットで表現されますが、2つのコードユニットで表現されるものもあります。 (また、通常1つの文字として認識されるものを表現するために、複数の Unicode コードポイントの組み合わせが必要になる場合があることにも注意してください。)