More Related Content
More from hATrayflood (19)
Nseg92 kotlin null safety
- 3. y y
2017/9/16 NSEG Vol.92
⾃⼰紹介
・名前︓アベヒロキ (@hATrayflood)
・職業︓⾃宅サーバ管理者
・URL︓rayflood.org/diary-temp/
・地元︓東部町
by ABE Hiroki aka hATrayflood
- 9. y y
2017/9/16 NSEG Vol.92
基本的な⽂法
http://kotlinlang.org/docs/reference/basic-syntax.html
by ABE Hiroki aka hATrayflood
- 11. y y
2017/9/16 NSEG Vol.92
( ・∀・) | | ガッ
と ) | |
Y /ノ ⼈
/ ) < >__Λ ∩
_/し' // V`Д´)/ ←>>1
(_フ⼺ /
by ABE Hiroki aka hATrayflood
- 20. y y
2017/9/16 NSEG Vol.92
val hoge: String = null
コンパイルエラー
by ABE Hiroki aka hATrayflood
- 22. y y
2017/9/16 NSEG Vol.92
fun setHoge(hoge: String) {
this.hoge = hoge
}
by ABE Hiroki aka hATrayflood
- 23. y y
2017/9/16 NSEG Vol.92
fun getFuga(): String? {
return null
}
by ABE Hiroki aka hATrayflood
- 26. y y
2017/9/16 NSEG Vol.92
fun setHoge(hoge: String) {
this.hoge = hoge
}
fun getFuga(): String? {
return "fuga"
}
val fuga = getFuga()
setHoge(fuga)
by ABE Hiroki aka hATrayflood
- 27. y y
2017/9/16 NSEG Vol.92
コンパイルエラー
fugaはnullの可能性があるので
nullを許容しないsetHoge()
には渡せない
by ABE Hiroki aka hATrayflood
- 29. y y
2017/9/16 NSEG Vol.92
val fuga = getFuga()
if(fuga != null){
setHoge(fuga)
}
by ABE Hiroki aka hATrayflood
- 31. y y
2017/9/16 NSEG Vol.92
val fuga = getFuga()
setHoge(fuga ?: "fuga")
by ABE Hiroki aka hATrayflood
- 33. y y
2017/9/16 NSEG Vol.92
fun getHage(): Hage? {
return Hage()
}
val hage = getHage()
hage.setHoge("hoge")
by ABE Hiroki aka hATrayflood
- 34. y y
2017/9/16 NSEG Vol.92
これもコンパイルエラー
hageはnullの可能性があるので
setHoge()を実⾏できない
ぬるぽの危険あり
by ABE Hiroki aka hATrayflood
- 36. y y
2017/9/16 NSEG Vol.92
val hage = getHage()
hage?.setHoge("hoge")
by ABE Hiroki aka hATrayflood
- 37. y y
2017/9/16 NSEG Vol.92
変数名の末尾に ? をつけると
メソッド実⾏時に⾃動的に
nullチェック
nullだったらスルーする
by ABE Hiroki aka hATrayflood
- 38. y y
2017/9/16 NSEG Vol.92
⼿動nullチェックでも可
?: 演算⼦でも可能だけど
使い道はあんまりなさげ
by ABE Hiroki aka hATrayflood
- 40. y y
2017/9/16 NSEG Vol.92
val hage = getHage()
hage!!.setHoge("hoge")
by ABE Hiroki aka hATrayflood
- 41. y y
2017/9/16 NSEG Vol.92
変数名の末尾に !! をつけると
メソッド実⾏時にnullチェック
せず強引に実⾏します
ぬるぽの危険あり
by ABE Hiroki aka hATrayflood
- 43. y y
2017/9/16 NSEG Vol.92
val hage = getHage() as Hage
hage.setHoge("hoge")
by ABE Hiroki aka hATrayflood
- 44. y y
2017/9/16 NSEG Vol.92
as でキャストすると
強引に ? を外せます
中⾝はnullもあるので
ぬるぽの危険あり
by ABE Hiroki aka hATrayflood
- 50. by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
・リンク集
twitter @hATrayflood
http://twitter.com/hATrayflood
Kotlin Programming Language
http://kotlinlang.org/
KotlinがAndroid開発⾔語になる
https://www.infoq.com/jp/news/2017/05/android-kotlin
【!ってなんだ】KotlinとJava、nullとPlatformType【NullableにNotNull】 - Qiita
http://qiita.com/RyotaMurohoshi/items/5fcc10d04fecd7304556
JavaプログラマがKotlinでつまづきがちなところ - Qiita
http://qiita.com/koher/items/d9411a00986f14683a3f
Kotlin : as, !, ? 周りのチートシート - i++
http://increment.hatenablog.com/entry/2015/10/31/090743
by ABE Hiroki aka hATrayflood