読者です 読者をやめる 読者になる 読者になる

kotlin tips: 自己を参照される可能性のあるコールバックとか単一処理を複数のコールバックで扱うことについて

※とりあえず五月雨式にメモしておく。結論はまだない。 戻り値方式とクロージャ方式の例 下記の returnValue1.kt は、Model の関数が結果を戻り値で返しています。 // // returnValue1.kt // package returnValue1 import returnValue1.AppendResult.Correct…

kotlin tips:extension function reference

kotlin のドキュメントに拡張関数参照の方法がさらっと書かれている。 あまりにもさらっと書かれすぎていて一度スルーしてしまったので、例を交えてメモしておくw If we need to use a member of a class, or an extension function, it needs to be qualif…

kotlin小ネタ:Activity 関連の試行錯誤

Activity を扱う際の実験コード。とりあえず思い付きで作ってみた。 カオスなのでダメ出し歓迎(`・ω・´) /** * Activity を扱う際のいろんなネタを詰め込んでみた実験コード。 * ※書式だけまとめたもので、実際に動くコードではない。 * * ポイントは以下。 * …

kotlin小ネタ:initializer block や property initializer は可能な限り避ける

※あまり深く考えてないのでまだアイデアレベルのメモ。ちゃんと考えないと一般化はできないと思われる。initializer block や property initializer を利用する状況というのは、インスタンスが生成された状態、つまり this が参照できる状態で val/var の初…

kotlin小ネタ:クラス分割メモ

実用性未検証だけどとりあえずメモ。 平面上にメソッドとバッキングフィールドを持つメンバを点として配置する。 メソッドからバッキングフィールドを持つメンバへの参照関係を線として表現する。 相互に到達し得るパスが存在しないグラフ毎に別クラス化を検…

kotlin小ネタ:code arrangement rule メモ

kotlin の code arrangement に関するおいらの独自ルールメモ。IntelliJ IDEA の kotlin の rearrange code 機能については中の人が 2016-11-21付で以下のような回答をしてるので、実装は気長に待つのが良さそうですね。stackoverflow.com以下おいら独自ルー…

kotlin小ネタ:elvis operator から return する際ににまとまった処理を書きたい場合

// elvis operator, return, closure の実行値, という組み合わせ。 // この例では return で f2() の値が返る。 val value = next() ?: return run { f1(); f2() } // これでも大丈夫。 val value = next() ?: return { f1(); f2() }()

kotlin小ネタ:expression の値が null の場合のみ expression の値を変えずに処理を行う例

// オリジナル val currentValue = nextValue() if (currentValue == null) finish() // 等価コード1 val currentValue = nextValue().apply { if (this == null) finish() } // 等価コード2 val currentValue = nextValue() ?: { finish(); null }() elvis …

kotlin小ネタ:ある値が null の場合は null を、そうでない場合にはその値を用いて初期化された値を取得するサンプル

class Sample { private var mStringBuilder: StringBuilder? = null // letters が null の場合は null を、そうでない場合は letters.length で初期化された StringBuilder を生成する fun init(letters: String?) { mStringBuilder = letters?.let { Stri…