-
Notifications
You must be signed in to change notification settings - Fork 2
typing
ab25cq edited this page Dec 12, 2018
·
7 revisions
English page is here >> English page
Cloverの型推論にはローカル変数の型推論、ブロックオブジェクトへの型推論の2種類があります。まずはローカル変数の型推論です。
a:int = 2;
は
a := 2;
と書くことが出来ます。右辺値の型に応じて変数の型が宣言されます。
もう一つのブロックオブジェクトへの型推論ですが、以下のようになります。
a:lambda(int,int):int = lambda (a:int, b:int) { return a + b }
returnされた型に応じてブロックオブジェクトの戻り値の型が決定されます。(戻り値の:intを省略できる)
(version 4.9.1よりブロックオブジェクトの型推論の戻り値の方の省略は廃止させてもらってます。すみません。)
メソッドブロックでは引数と戻り値を省略できます。引数はit,it2,it3,....として宣言されます。
{1,2,3}.each { it.toString().println() }
1
2
3
a:SortableList<String> = {1,2,3}.map { it.toString() }
となります。
- フリーフォーマット
- 変数と関数について
- 条件分岐と演算子
- 論理演算子
- ビット演算子
- ループ
- ブロック
- コメント
- アノテーション
- ナルエイブル
- プリミティブクラス
- 配列
- クラス
- クラスフィールドとクラスメソッド
- dynamic_class
- boxingとunboxing
- プリミティブ型とスペシャルフィールド
- スペシャルメソッド
- インターフェース
- 移譲
- モジュール
- ジェネリクス
- メソッドジェネリクス
- 関数
- 列挙型(enum)
- 自動setterとgetterの定義
- when文
- 変数の宣言の取り消し
- 例外処理
- 多重代入
- 代入時の自動キャスト
- C言語へのFFI
- ローカル変数の宣言
- メモリーセーフなポインタ
- 例外演算子
- 糖衣構文