Slide 1

Slide 1 text

͔Ώ͍ͱ͜Ζʹ ख͕ಧ͘ ,PUMJO/JHIU !NBUUBL

Slide 2

Slide 2 text

,PUMJOͷศརͳॻ͖ํͭ঺հ͢ΔΑ

Slide 3

Slide 3 text

MB[Z ✨ΪϦΪϦ·Ͱ࣮ߦ͠ͳ͍✨

Slide 4

Slide 4 text

class Person( val firstName: String, val lastName: String ) { val fullName by lazy { “${firstName}, ${lastName}” } } // ͜ͷ࣌఺Ͱ͸ fullName͸ͭ͘ΒΕͳ͍ val person = Person(“John”, “Due”) // ΞΫηεͯ͠ॳΊͯ࡞੒͞ΕΔ println(person.fullName)

Slide 5

Slide 5 text

MFUOJMDPBMFTDJOHPQFSBUPS ✨JGMFUͯ͠ฦΓ஋͕΄͍͠✨

Slide 6

Slide 6 text

// ී௨ͷॻ͖ํ var name: String? = “Kana” var message: String = if (name!=null) “Hello, ${name}!” else “Hello.” // let+null coalescing op var name: String? = “Kana” var message: String = name?.let { “Hello, ${it}!” } ?: “Hello.”

Slide 7

Slide 7 text

DMBTTKBWB ✨KBWBͷΫϥεΦϒδΣΫτ͕΄͍͠✨

Slide 8

Slide 8 text

// ී௨ͷॻ͖ํ javaClass() // M13Ҏ߱ͷॻ͖ํ Sample::class.java // ࢖͍υίϩɺ(TPOύʔε͢Δͱ͖ͳͲ val gson = Gson() val person = gson.fromJson(“{\”name\”: \”Ocelot\”}”, Person::class.java)

Slide 9

Slide 9 text

HFUUFSTFUUFS ✨HFUUFSTFUUFS͕͔ΜͨΜʹ͔͚ΔΑ✨

Slide 10

Slide 10 text

// Computed properties class Duration(val interval: Long) { var seconds: Double get() = interval.toDouble() / 1000 set(value) { this.interval = value * 1000 } } // javaͷsetter/getter͕KotlinͩͱpropertyʹͳΔΑ person.name = “John” // person.setName(String name) person.name // person.getName()

Slide 11

Slide 11 text

0CKFDU ✨4JOHMFUPO͕΄͍͠ʂ✨

Slide 12

Slide 12 text

// java class Singleton { private static Singleton instance = null; public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } } // kotlin object Singleton() // Object͸lazy. ॳճΞΫηεͰOFX͞ΕΔ Singleton

Slide 13

Slide 13 text

// java class NotSingleton { public static void callClassMethod() {} } NotSingleton.callClassMethod(); // kotlin class NotSingleton { companion object { fun callClassMethod() {} } } NotSingleton.callClassMethod()

Slide 14

Slide 14 text

UIJT! ✨ͲͷUIJT͔໌ࣔͯ͠ΞΫηε͍ͨ͠✨

Slide 15

Slide 15 text

class A { inner class B { fun doit() { val a = this@A // instance of class A val b = this@B // instance of class B } } }

Slide 16

Slide 16 text

6OJU ✨+BWBͷ7PJEʹରԠ͢Δ΍ͭ✨

Slide 17

Slide 17 text

public open class UpdateModel { // ΠϕϯτΛૹ৴͍͚ͨ͠Ͳɺແҙຯͳ஋ΛૹΓ͍ͨ࣌ͱ͔ val updateEvent by lazy { BehaviorSubject.create() } fun update() { // Unit͸ Object. ৽͍͠instanceΛͭ͘Βͳ͍ updateEvent.onNext(Unit) } }

Slide 18

Slide 18 text

&YUFOTJPO ✨طଘͷΫϥεʹϝιουΛ෇͚଍͍ͨ͠✨

Slide 19

Slide 19 text

// طଘͷΫϥεΛ֦ுग़དྷΔ fun Observable.notNulls(): Observable { return this.filter { it != null }. map { it!! } } // ΑΓγϯϓϧʹʂ val observable = Observable.just(1, null, 2, null) val normal = observable.filter { it != null }. map { it !! } val pretty = observable.notNulls()

Slide 20

Slide 20 text

͍͡ΐ͏Ͱ͢ ✨&OKPZLPUMJO✨