2016/12/02の30分Kotlinメモ🔥
2016/12/02の30分Kotlinメモ🔥
書いてるコードは雑にここにあります。
関数
デフォルト引数いいねー。
Named Argumentsもできるので、便利だ。
fun testFun(test: String = "", value: Boolean = true, intV: Int = 1) { println(test) println(value) println(intV) } testFun() testFun("test") testFun("test", intV = 9) testFun(value = false)
Properties
これはなんか色々あるので、使って理解していくしかなさそう。
open class User(open val name: String) { var gender: Int = 0 set(value) { field = value } val isAdmin: Boolean get() = false }
プロパティのoverrideもできるのか。なるほど。
class AdminUser(name: String) : User(name) { override val name: String get() = name.toUpperCase() }
Interfaces
デフォルト実装もできるので、Java 8に似てるなー。よい。
interface Action { // propertyを持てる.interface側では値を設定できない val prop: Int val name: String get() = "action name" fun jump() // デフォルト実装を持てる fun run() { println("run") println(prop) println(name) } } class TestAction : Action { override val prop: Int = 1 override val name: String get() = super.name + " test" override fun jump() { println("TestAction jump") } }
Visibility Modifiers
何もつけないとpublicになる。なるほど。
ちょっとJavaと違うので、これは使いながら学ぶしかなさそう。まだはっきりわかってない。
package test // 何もつかないとpublic class Event { // 値の参照はできるが、setterはこのファイル内からしかできない var value = 0 private set internal val name = "test" private fun test() { value = 10 } }
まとめ
うむ、よい。当たり前のことが当たり前にできる喜び。