DroidKaigi2018の発表資料です。 https://droidkaigi.jp/2018/Read less
結論(2021-07-06更新) 個人的なスタンス 個人的な意見として、原則 nullableのためにletを使うのみに留めたいところです。 そもそも、このような記事を書いて、それなりに閲覧されている程度には、スコープ関数は難しいからです。 JavaのAPIを使う場合、alsoやapplyが便利な場面があって、これは例外的に使ってもいいかもしれません。 が、スコープ関数を使わない素直なコードの選択肢を常に持っておくべきでしょう。 一応 スコープ関数の図解 --------以下、詳しく知りたい人向け-------- Kotlinの標準ライブラリには「スコープ関数」と呼ばれる4つの関数があります。 let、with、run、applyです。 それぞれ似ているので使い分けが難しいと思い、私なりの考えをまとめておきます。 (2017-01-26 追記) ver1.1で追加されるalsoについて解説
IDEs AppCode CLion DataGrip DataSpell Fleet GoLand IntelliJ IDEA PhpStorm PyCharm RustRover Rider RubyMine WebStorm Plugins & Services Big Data Tools Code With Me Quality Assurance JetBrains Platform Scala Toolbox App Writerside Team Tools Datalore Space TeamCity Upsource YouTrack Hub Qodana .NET & Visual Studio .NET Tools ReSharper C++ Languages & Frameworks Kotlin Ktor MPS Education & Research J
@BladeCoder が書いた Kotlinの隠れたコストの調査 という一連のブログ記事は、ある Kotlin 構文にどのように隠れたコストがあるのかを説明しました。 実際の隠れたコストは、普通、不可視オブジェクトのインスタンス化やプリミティブ値のボクシング/アンボクシングに起因します。これらのコストは、Kotlinコンパイラがどのように上記の構文をJVMのバイトコードに変換するのかを理解していない開発者には特に見えづらいのです。 しかし、何らかの数字を示さずに隠れたコストの話をするだけでは、実際にどのくらいコストのことを心配すべきなのかという疑問が湧いてきます。コードベースのいたるところで、これらのコストを考慮すべきでしょうか?あるKotlin構文は単に全面的に禁止されるべきでしょうか?あるいは、最も範囲の狭い内部ループの中でだけ考慮されるべきでしょうか? さらに挑発的な言い方をすれば
Rx Ja Night Vol.2 - connpassで「 Androidの非同期処理をKotlinコルーチンで行う」という話をしてきました。 スライドで使っているコードは次のリポジトリに置いています。 github.com 今回取り扱った非同期処理の範囲 スライドやリポジトリのREADME.mdに大体書いているのですがコチラにも載せときます。 詳細な説明はスライドやリポジトリを参照してください。 次の非同期処理をコルーチンで実現します。 単発の実行 直列の実行 並列の実行 + エラーハンドリング キャンセル 環境 すべてKotlinが提供する標準の機能を用います。 implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.2-4" implementation "org.jetbrains.kotlinx:kotlinx-c
.app 1 .dev 1 #11WeeksOfAndroid 13 #11WeeksOfAndroid Android TV 1 #Android11 3 #DevFest16 1 #DevFest17 1 #DevFest18 1 #DevFest19 1 #DevFest20 1 #DevFest21 1 #DevFest22 1 #DevFest23 1 #hack4jp 3 11 weeks of Android 2 A MESSAGE FROM OUR CEO 1 A/B Testing 1 A4A 4 Accelerator 6 Accessibility 1 accuracy 1 Actions on Google 16 Activation Atlas 1 address validation API 1 Addy Osmani 1 ADK 2 AdMob 32 Ads
Kotlin 1.1の新機能 Kotlin 1.1には数多くの言語機能の改善が含まれています。JavaScriptサポートとコルーチンは中でも大きなハイライトになります。他はタイプエイリアス、bound callable references、lambdaのdestructuringにも注目してください。新しい機能の一覧はWhat’s new ページよりご確認いただけます。(実行可能なサンプルコードを是非お試しください!)。 Kotlinは真のフルスタック言語となることを目指しています 。Kotlin 1.1をもって言語の全機能はJVM / Android並びにJavaScriptで動作するようになりました。(JavaScriptでReflectionはご利用いただけませんが、動作するよう計画はしています。)つまり、Webアプリケーションは全てKotlinで書くことができるようになったとい
表題の通りです。とりあえず、Kotlin版とScala版のコード貼ります。 gist.github.com gist.github.com これらのコードでは、両方とも明示的なダウンキャストやその他の抜け穴を使っていないので、実行しても決してClassCastExceptionが起きてはいけないのですが、実際に実行するとClassCastExceptionが起きてしまいます。 さて、これはコンパイラの実装のバグでもあり、言語仕様のバグでもあるのですが、ちょっと理由を説明してみたいと思います。 class B extends A with Comparable[B] { def compareTo(b: B): Int = 0 } 上記のコードをコンパイルすると、下記のコードが生成されます。ここで、int compareTo(java.lang.Object)というメソッドが 定義されている
IDEs AppCode CLion DataGrip DataSpell Fleet GoLand IntelliJ IDEA PhpStorm PyCharm RustRover Rider RubyMine WebStorm Plugins & Services Big Data Tools Code With Me Quality Assurance JetBrains Platform Scala Toolbox App Writerside JetBrains AI Grazie Team Tools Datalore Space TeamCity Upsource YouTrack Hub Qodana .NET & Visual Studio .NET Tools ReSharper C++ Languages & Frameworks Kotlin Ktor MPS Am
This is it. 1.0 is here! It’s been a long and exciting road but we’ve finally reached the first big 1.0, and we’re celebrating the release by also presenting you with the new logo: See the discussions on Reddit and Hacker News. What is Kotlin? Kotlin is a pragmatic programming language for the JVM and Android that combines OO and functional features and is focused on interoperability, safety, clar
See discussions on Reddit and Hacker News Kotlin #とは? KotlinはJVMとAndroid向けのオブジェクト指向かつ関数型な実用的(Pragmatic)言語です。相互運用性、安全性、明瞭性、そしてツールサポートにフォーカスしています。 汎用言語であるKotlinはJavaが動作する場所であればサーバサイドアプリケーション、モバイルアプリケーション(Android)、デスクトップアプリケーションを含むどこでも動作します。以下のメジャーなツールやサービスに対応しています: IntelliJ IDEA、Android Studio、Eclipse Maven、Gradle、Ant Spring Boot (KotlinサポートがKotlin 1.0と同時にリリースされました!) GitHub、Slack、Minecraft Kotlinの焦点
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く