プリミティブ型
💡 お知らせ: このドキュメントはAIによって翻訳されています。表現に違和感がある場合は、原文(英語)を参照してください。
Flix は以下のプリミティブ型をサポートしています:
| 型 | 構文 | 説明 |
|---|---|---|
| Unit | () | Unit 値 |
| Bool | true, false | 真偽値 |
| Char | 'a', 'b', 'c' | 文字1値 |
| Float32 | 0.0f32, 21.42f32, -21.42f32 | 32ビット浮動小数点数 |
| Float64 | 0.0f64, 21.42f64, -21.42f64 | 64ビット浮動小数点数 |
| Int8 | 0i8, 1i8, -1i8, 127i8, -128i8 | 符号付き8ビット整数 |
| Int16 | 0i16, 123i16, -123i16 | 符号付き16ビット整数 |
| Int32 | 0i32, 123i32, -123i32 | 符号付き32ビット整数 |
| Int64 | 0i64, 123i64, -123i64 | 符号付き64ビット整数 |
| String | "hello", "world" | 文字列値 |
| BigInt | 0ii, 123ii, -123ii | 任意精度整数 |
| BigDecimal | 0.0ff, 123.45ff, -123.45ff | 任意精度小数 |
Float64 と Int32 の値はサフィックスなしで記述できます。
つまり、123.0f64 は単に 123.0 と、123i32 は 123 と書くことができます。
リテラル
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")
-
より正確には、
Char値は単一の UTF-16 コードユニットに対応します。UTF-16 は可変長エンコーディングです: 一部の Unicode コードポイントは単一の UTF-16 コードユニットで表現されますが、2つのコードユニットで表現されるものもあります。 (また、通常1つの文字として認識されるものを表現するために、複数の Unicode コードポイントの組み合わせが必要になる場合があることにも注意してください。) ↩