-
Notifications
You must be signed in to change notification settings - Fork 2
object
ab25cq edited this page Jan 28, 2018
·
4 revisions
English page is here >> English page
Objectクラスは空のインターフェースです。そのため、どのオブジェクトも代入することができます。ただし、呼び出せるメソッドはスペシャルメソッドのみとなります。className(), identfyWith()などはスペシャルメソッドのため使うことができます。className()で実行時のオブジェクトのクラスに応じた処理をしてください。何らかのクラスに変換したい場合は後述するtoAnonymous()を使ってください。もしくはisスペシャルメソッドのほうが便利かもしれません。
a:List<Object> = new List<Object>();
a.add(1);
a.add("ABC");
a.each(lambda(item:Object) {
if(item.className().equals("Integer") {
item2:Integer = item.toAnonymous();
# Integerの処理
}
elif(item.className().equals("String") {
item2:String = item.toAnonymous();
# Stringの処理
}
});
isスペシャルメソッドを使った例
a:List<Object> = new List<Object>();
a.add(1);
a.add("ABC");
a.each {
if(it.is("Integer")) {
# itはInteger型
}
elif(it.is("String")) {
# itはString型
}
});
- フリーフォーマット
- 変数と関数について
- 条件分岐と演算子
- 論理演算子
- ビット演算子
- ループ
- ブロック
- コメント
- アノテーション
- ナルエイブル
- プリミティブクラス
- 配列
- クラス
- クラスフィールドとクラスメソッド
- dynamic_class
- boxingとunboxing
- プリミティブ型とスペシャルフィールド
- スペシャルメソッド
- インターフェース
- 移譲
- モジュール
- ジェネリクス
- メソッドジェネリクス
- 関数
- 列挙型(enum)
- 自動setterとgetterの定義
- when文
- 変数の宣言の取り消し
- 例外処理
- 多重代入
- 代入時の自動キャスト
- C言語へのFFI
- ローカル変数の宣言
- メモリーセーフなポインタ
- 例外演算子
- 糖衣構文