kotlinのメモです。
1026 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。
ChatGPTで自動プログラム作成に取り組み中。
https://www.osumoi-stdio.com/novel/