型注釈
💡 お知らせ: このドキュメントはAIによって翻訳されています。表現に違和感がある場合は、原文(英語)を参照するか、翻訳にご協力ください。
Flix はローカル型推論をサポートしていますが、式や let 束縛にその型を注釈しておくと便利な場合があります。このような注釈を型注釈(Type ascription)と呼びます。型注釈によって式の型を変えることはできず、型安全性を破るために使うこともできません。
型注釈は式の後ろに置くことができます:
(("Hello" :: "World" :: Nil) : List[String])
ただし、他の式と区別するために括弧で囲む必要があります。
let 束縛に対しては、括弧なしで型注釈を置くこともできます:
let l: List[String] = "Hello" :: "World" :: Nil
カインド注釈
Flix はカインド注釈(Kind ascription)もサポートしています。型注釈が_式_の_型_を指定するのに対して、カインド注釈は_型_の_カインド_を指定します。
カインド注釈は型パラメータに対して使うことができます。例えば:
def fst1[a: Type, b: Type](p: (a, b)): a = let (x, _) = p; x
ここでは、2 つの型パラメータ a と b の_カインド_が Type であることを指定しています。このようなカインドは推論できるため、通常は指定する必要はありません。
代数的データ型にカインド注釈を付けることもできます:
enum A[t: Type] {
case A(t, t)
}
トレイトにも付けられます:
trait MyTrait[t: Type] {
// ...
}
カインド注釈は通常、高カインド型に対してのみ使用します。