タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

Kotlinに関するsmokeymonkeyのブックマーク (3)

  • [Kotlin] コルーチンクイズ(問題編) | DevelopersIO

    はじめに Kotlinでそろそろコルーチンが正式にリリースされそうですね。 しかし、コルーチンを実際に使わないとなかなか感覚がつかめません。 最初につまずきそうな所をピックアップして問題をつくってみました。概念を説明するように具体的なコードをみたほうがわかりやすいと思ったからです。 問題 以下を実行した時に約何msになるかお答えください。 使用するクラスは以下の通り、task1,task2はRestApiなどを叩く重たい処理だと思ってください。処理1秒かかるとします。 task3はtask2の返り値を必要とし、同様に1秒かかるものとします。 class SampleTask { suspend fun task1(): Int { delay(1000, TimeUnit.MILLISECONDS) return 200 } suspend fun task2(): String { de

    [Kotlin] コルーチンクイズ(問題編) | DevelopersIO
  • [Kotlin]コルーチンのChannelのハマり所 | DevelopersIO

    コルーチンに Channel があります。Queueのようなもので、メッセージの受け渡しができます。 とっても便利なんですが、今までと違うパラダイムなのでハマる可能性があります。 例: fun main(args: Array<String>) = runBlocking<Unit> { val channel = Channel<Int>() // <- receiveされていないメッセージが何個でもOK launch(CommonPool) { // this might be heavy CPU-consuming computation or async logic, we'll just send five squares for (x in 1..5) channel.send(x * x) } // here we print five received integers:

    [Kotlin]コルーチンのChannelのハマり所 | DevelopersIO
  • [Kotlin]レシーバー指定ラムダとは何か | DevelopersIO

    まえがき Kotlinのスコープ関数便利ー。 let apply run with also kotlin-Standard.ktより ただ当に使いこなすに ラムダ と レシーバー指定ラムダ を理解しなければなりません。 // ラムダ public inline fun <T, R> T.let(block: (T) -> R): R = block(this) // レシーバー指定ラムダ public inline fun <T> T.apply(block: T.() -> Unit): T { block(); return this } block: (T) -> R) と block: T.() -> Unit の違いわかりますか これを理解としないとblock内の this の罠に引っかかる サンプル 理解するためのサンプルコードを書きました class Sample { v

    [Kotlin]レシーバー指定ラムダとは何か | DevelopersIO
  • 1