Kotlin未経験Javaエンジニアに拡張関数を説明すると「怖い」と言われることがあります。 おそらく、クラスを継承する事なく拡張できることが黒魔術的に見えるがゆえの感想なのではないでしょうか。 本稿では拡張関数の実態を知ることで、拡張関数をもっと身近に感じてもらいたいと思います。 拡張関数とはなにか 拡張関数はクラスを継承せずに機能を追加するための機能です。 下記のようにfun Type.functionName(...)とすることでそのTypeに新たに関数を追加する事ができます。 fun String.println() { println(this) } 拡張関数は通常の関数と同じように呼び出すことが可能です。 "Hello World".println() // out: Hello World 拡張関数はどのように実現されているのか StringExtension.ktファイルに