初心者用kotlin

kotlinのメモです。

797 views

お題

こんな変な関数の定義を見つけた。

fun MyClass.print_goodByeWorld() {
    println("good bye world")
}

クラスのメソッドのようにも、ただの関数にも見えるけど、どちらでもない。
なんなのでしょう?

回答

拡張関数Death!
定義済みのクラスに、関数を追加できるというもの。

class MyClass {
    public fun print_hello() {
        println("hello world!")
    }
}

fun MyClass.print_goodByeWorld() {
    println("good bye world")
}

fun main(args:Array<String>) {
    val mycls = MyClass()
    mycls.print_hello()
    mycls.print_goodByeWorld()
}

1~5行目でクラスを定義している。
そして、7~9行目でMyClassにprint_godByWorldを追加している。

12行目でクラスを生成し、14行目でまるで、最初からクラスに定義されていたかのように、print_goodByeWorldを呼び出している。

使いどころ

すでに定義されているクラスに関数を増やしたい、という場面で使用する。
https://maku77.github.io/kotlin/basic/ext-func.html
を参考にしてください。

感想

勘弁してくれ。

Page 30 of 36.

前のページ 次のページ



[添付ファイル]


お問い合わせ

プロフィール

マッスル

自己紹介

本サイトの作成者。
趣味:プログラム/水耕栽培/仮想通貨/激辛好き
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
仮想通貨はNEMが好き。
水耕栽培は激辛好きが高じて、キャロライナ・リーパーの栽培にチャレンジ中。

サイト/ブログ

https://www.osumoi-stdio.com/pyarticle/

ツイッター

@darkimpact0626