型一覧
Midoliy |> F#プログラミング


型の概要
組み込み型の一覧表

型の概要


 F#にはさまざまな "型" が存在しています。.NETで共通する組み込み型(= プリミティブ型)の他に、F#固有の型が多数存在しています。
 これは、OCamlとの互換性の維持のためであったり、関数型言語として当然なければならない機能を実現するために、.NETとは関係のない独自の型を採用しています。
 F#以外の.NET言語の経験がある方はプリミティブ型を改めて理解する必要はありませんが、F#固有の型については使い方や特性を新たに理解しなければなりません。

 以下はF#がもつ基本的な型の概要一覧です。

F#の型 構文
プリミティブ型 型名 int
float
string
集計型
 (class/struct/union/record/enumなど)
型名 System.DateTime
Color
型略称 型略称名 bigint
完全修飾型 namespace.型名
 または
module.型名
 または
namespace.module.型名
System.IO.StreamWriter
配列 (array) 型名[]
 または
array<型名>
 または
型名 array
int[]
array<float>
string array
2次元配列 型名[,] int[,]
folat[,]
3次元配列 型名[,,] string[,,]
タプル型 (tuple) 型名1 * 型名2 int * char * int
ジェネリック型 型パラメータ ジェネリック型名
 または
ジェネリック型名<型パラメータリスト>
'a list
list<'a>
Dictionary<'key, 'value>
構築型
 (特定の型引数を持つジェネック型)
型引数 ジェネリック型名
 または
ジェネリック型名<型引数リスト>
int option
list<string>
ref<int>
Dictionary<int, string>
1つの引数をもつ関数型 引数の型 -> 戻り値の型 int -> string
 int型を受けとって, string型を返す関数
複数の引数をもつ関数型 引数の型1 -> 引数の型2 -> ... -> 戻り値の型 int -> float -> string
 int型とfloat型を受けとって, string型を返す関数
引数としての高階関数 (関数型) ('a -> 'b) -> 'a list -> 'b list
デリゲート (delegate) delegate of 関数型 delegate of unit -> int
フレキシブル型 (flexible) #型名 #System.Windows.Forms.Control
#seq<int>


組み込み型の一覧表


 次の表はF#の基本的な型のキーワード一覧となっています。これは System 名前空間で定義済みの型の別名(= エイリアス)となっています。
 また、unit型だけは、F#独自の組み込み型となっています。

F#の型 .NET型 値範囲
bool System.Boolean true / false
byte System.Byte 0 ~ 255
sbyte System.SByte -128 ~ 127
int16 System.Int16 -32,768 ~ 32,767
uint16 System.UInt16 0 ~ 65,535
int System.Int32 -2,147,483,648 ~ 2,147,483,647
uint32 System.UInt32 0 ~ 4,294,967,295
int64 System.Int64 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
uint64 System.UInt64 0 ~ 18,446,744,073,709,551,615
float32 / single System.Single ±1.5x10−45 ~ ±3.4x1038
float / double System.Double ±5.0×10−324 ~ ±1.7×10308
decimal System.Decimal ±1.0x10-28 ~ ±7.9228x1028
char System.Char Unicode文字= U+0000 ~ U+FFFF
string System.String Unicode文字列
object System.Object すべての型の親
void System.Void ないことを示す型、または値
unit 該当なし 実際の値がないことを示します。unit型は () を唯一の値として持ちます。
nativeint System.IntPtr 符号付き整数値としてのネイティブポインタ
unativeint System.UIntPtr 符号なし整数値としてのネイティブポインタ