- 手軽なスクリプト言語としてのF#
- 手軽なスクリプト言語としてのF# その2
- 手軽なスクリプト言語としてのF# その3
- 手軽なスクリプト言語としてのF# その4
- 手軽なスクリプト言語としてのF# その5
さて、今まで型にうるさいF#言語だけど型について一切触れてませんでした。
まぁ、普段使いするプリミティブ型は以下のようなものですね。
型名 | どんなもの | 具体的な値 |
int | 32bit整数 | 1 |
string | 文字列 | "あいうえお" |
float | 64 ビット浮動小数点 | 3.14 |
bool | trueかfalse | true |
プリミティブ型の完全なリストは以下で参照できます。
このほかにもvoidの代わりに使われているunit型というのもあります。unit型は()と表記するようです。試しにこんなプログラム書いてみました。
let u = () printfn "%A" u
実行結果
<null>
関数は何かしらの値を返す必要があるらしいのですが、何も返さないときはこれを使うらしいです。
タプル型は(型名 * 型名 * 型名)のような形であらわされます。例えば
let t = (1, "two", false)
は、(int * string * bool)になります。
関数の型は、引数1 -> 引数2 -> ...引数n -> 戻り値のように書きます。例えば以下のような関数があるとすると
let add x y = x + y
型はint -> int -> intこんな風になります。
因みに、文字列から数字に変換したいということとかがよくありますが、そういうときには int "1" や float "3.1" のように書くことで変換できます。 string 1と書くことで数字から文字列も変換できます。
さて、ここまでプログラム書いてきて一度も型名とかちゃんと書いたことなかったわけですがF#が限界まで空気を読んでくれて型を推論してくれてるからです。楽でいいですね。
でも、型を明示することも出来ます。
// iはint型だと明示 let i : int = 100 // intを受け取ってintを受け取ってintを返す関数 let add (x : int) (y : int) : int = x + y
ということで、型についてちょっとだけ詳しくなった今日この頃でした。