SlideShare a Scribd company logo
1 of 51
Download to read offline
2017/9/16 NSEG Vol.92
kotlin
Null Safety
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
お前
誰︖by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
⾃⼰紹介
・名前︓アベヒロキ (@hATrayflood)
・職業︓⾃宅サーバ管理者
・URL︓rayflood.org/diary-temp/
・地元︓東部町
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
kotlin
とは by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
JetBrains
(IntelliJ)
開発
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
alt java
っぽい⾔語
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
javaと相互
呼び出し可能
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
android
公式⾔語
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
基本的な⽂法
http://kotlinlang.org/docs/reference/basic-syntax.html
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
. ∧_∧
( ´∀`)< ぬるぽ
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
( ・∀・)  | | ガッ
と    )   | |
Y /ノ     ⼈
/ )  <  >__Λ ∩
_/し' // V`Д´)/ ←>>1
(_フ⼺          /
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
を軽減できる
仕組み
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
基本by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
val hoge: String
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
val fuga: String?
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
違いは︖
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
末尾の ?
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
val hoge: String
null不可
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
val fuga: String?
null許容
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
val hoge: String = null
コンパイルエラー
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
半ば型が違うもの
として扱われる
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
fun setHoge(hoge: String) {
this.hoge = hoge
}
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
fun getFuga(): String? {
return null
}
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
メソッドの引数と
戻り値も同様
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
基本2
by ABE Hiroki aka hATrayflood
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
y y
2017/9/16 NSEG Vol.92
コンパイルエラー
fugaはnullの可能性があるので
nullを許容しないsetHoge()
には渡せない
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
どうするか
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
val fuga = getFuga()
if(fuga != null){
setHoge(fuga)
}
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
nullチェック
で渡せる
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
val fuga = getFuga()
setHoge(fuga ?: "fuga")
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
?: 演算⼦で
nullの代替値を
設定できる
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
fun getHage(): Hage? {
return Hage()
}
val hage = getHage()
hage.setHoge("hoge")
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
これもコンパイルエラー
hageはnullの可能性があるので
setHoge()を実⾏できない
ぬるぽの危険あり
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
どうするか
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
val hage = getHage()
hage?.setHoge("hoge")
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
変数名の末尾に ? をつけると
メソッド実⾏時に⾃動的に
nullチェック
nullだったらスルーする
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
⼿動nullチェックでも可
?: 演算⼦でも可能だけど
使い道はあんまりなさげ
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
禁じ⼿
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
val hage = getHage()
hage!!.setHoge("hoge")
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
変数名の末尾に !! をつけると
メソッド実⾏時にnullチェック
せず強引に実⾏します
ぬるぽの危険あり
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
禁じ⼿2
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
val hage = getHage() as Hage
hage.setHoge("hoge")
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
as でキャストすると
強引に ? を外せます
中⾝はnullもあるので
ぬるぽの危険あり
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
まとめby ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
適切に使えば
コンパイル時点で
ぬるぽ回避可能
なのは⼤きい
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
抜け道もあるので
気を付けよう
(特に外部ライブラリ)
by ABE Hiroki aka hATrayflood
y y
2017/9/16 NSEG Vol.92
最近の愛読書
2017/9/16 NSEG Vol.92
※いずれもDL版もしくはsteam版
by ABE Hiroki aka hATrayflood
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
y y

More Related Content

More from hATrayflood

Nseg26 you should become a mozillian !!
Nseg26 you should become a mozillian !!Nseg26 you should become a mozillian !!
Nseg26 you should become a mozillian !!
hATrayflood
 
Modbuilders 独自ビルド環境について
Modbuilders 独自ビルド環境についてModbuilders 独自ビルド環境について
Modbuilders 独自ビルド環境について
hATrayflood
 
高橋rf.html 0.3
高橋rf.html 0.3高橋rf.html 0.3
高橋rf.html 0.3
hATrayflood
 
Nseg17 新世代firefox紹介
Nseg17 新世代firefox紹介Nseg17 新世代firefox紹介
Nseg17 新世代firefox紹介
hATrayflood
 
Nseg18 カレーとfirefox
Nseg18 カレーとfirefoxNseg18 カレーとfirefox
Nseg18 カレーとfirefox
hATrayflood
 
Nseg15 一般的じゃないpython入門
Nseg15 一般的じゃないpython入門Nseg15 一般的じゃないpython入門
Nseg15 一般的じゃないpython入門
hATrayflood
 
Modest09 j query事始め
Modest09 j query事始めModest09 j query事始め
Modest09 j query事始め
hATrayflood
 
Modest08 core i7 2600とfirefox 4.0b9でベンチ測ってみたよ
Modest08 core i7 2600とfirefox 4.0b9でベンチ測ってみたよModest08 core i7 2600とfirefox 4.0b9でベンチ測ってみたよ
Modest08 core i7 2600とfirefox 4.0b9でベンチ測ってみたよ
hATrayflood
 
Nseg10 pcセキュリティの第一歩
Nseg10 pcセキュリティの第一歩Nseg10 pcセキュリティの第一歩
Nseg10 pcセキュリティの第一歩
hATrayflood
 
Devnaga6 高橋rf.html + printplusリリース
Devnaga6 高橋rf.html + printplusリリースDevnaga6 高橋rf.html + printplusリリース
Devnaga6 高橋rf.html + printplusリリース
hATrayflood
 
Modest06 firefox 4 の l10 n について
Modest06 firefox 4 の l10 n についてModest06 firefox 4 の l10 n について
Modest06 firefox 4 の l10 n について
hATrayflood
 
Modest04 firefox-3.6.4以降のビルドについて
Modest04 firefox-3.6.4以降のビルドについてModest04 firefox-3.6.4以降のビルドについて
Modest04 firefox-3.6.4以降のビルドについて
hATrayflood
 
Modest02 freetype2 on fx-3.6 win32
Modest02 freetype2 on fx-3.6 win32Modest02 freetype2 on fx-3.6 win32
Modest02 freetype2 on fx-3.6 win32
hATrayflood
 
Nseg8 最近のパソコン事情について
Nseg8 最近のパソコン事情についてNseg8 最近のパソコン事情について
Nseg8 最近のパソコン事情について
hATrayflood
 
Nseg5 第17回北海道開発オフ参加報告
Nseg5 第17回北海道開発オフ参加報告Nseg5 第17回北海道開発オフ参加報告
Nseg5 第17回北海道開発オフ参加報告
hATrayflood
 
Nseg3 firefoxとmozillaコミュニティの紹介
Nseg3 firefoxとmozillaコミュニティの紹介Nseg3 firefoxとmozillaコミュニティの紹介
Nseg3 firefoxとmozillaコミュニティの紹介
hATrayflood
 
Nseg2 自宅サーバ運用について
Nseg2 自宅サーバ運用についてNseg2 自宅サーバ運用について
Nseg2 自宅サーバ運用について
hATrayflood
 
Devdo17 nsegの現状と課題
Devdo17 nsegの現状と課題Devdo17 nsegの現状と課題
Devdo17 nsegの現状と課題
hATrayflood
 
高橋Rf.html + printplus
高橋Rf.html + printplus高橋Rf.html + printplus
高橋Rf.html + printplus
hATrayflood
 

More from hATrayflood (19)

Nseg26 you should become a mozillian !!
Nseg26 you should become a mozillian !!Nseg26 you should become a mozillian !!
Nseg26 you should become a mozillian !!
 
Modbuilders 独自ビルド環境について
Modbuilders 独自ビルド環境についてModbuilders 独自ビルド環境について
Modbuilders 独自ビルド環境について
 
高橋rf.html 0.3
高橋rf.html 0.3高橋rf.html 0.3
高橋rf.html 0.3
 
Nseg17 新世代firefox紹介
Nseg17 新世代firefox紹介Nseg17 新世代firefox紹介
Nseg17 新世代firefox紹介
 
Nseg18 カレーとfirefox
Nseg18 カレーとfirefoxNseg18 カレーとfirefox
Nseg18 カレーとfirefox
 
Nseg15 一般的じゃないpython入門
Nseg15 一般的じゃないpython入門Nseg15 一般的じゃないpython入門
Nseg15 一般的じゃないpython入門
 
Modest09 j query事始め
Modest09 j query事始めModest09 j query事始め
Modest09 j query事始め
 
Modest08 core i7 2600とfirefox 4.0b9でベンチ測ってみたよ
Modest08 core i7 2600とfirefox 4.0b9でベンチ測ってみたよModest08 core i7 2600とfirefox 4.0b9でベンチ測ってみたよ
Modest08 core i7 2600とfirefox 4.0b9でベンチ測ってみたよ
 
Nseg10 pcセキュリティの第一歩
Nseg10 pcセキュリティの第一歩Nseg10 pcセキュリティの第一歩
Nseg10 pcセキュリティの第一歩
 
Devnaga6 高橋rf.html + printplusリリース
Devnaga6 高橋rf.html + printplusリリースDevnaga6 高橋rf.html + printplusリリース
Devnaga6 高橋rf.html + printplusリリース
 
Modest06 firefox 4 の l10 n について
Modest06 firefox 4 の l10 n についてModest06 firefox 4 の l10 n について
Modest06 firefox 4 の l10 n について
 
Modest04 firefox-3.6.4以降のビルドについて
Modest04 firefox-3.6.4以降のビルドについてModest04 firefox-3.6.4以降のビルドについて
Modest04 firefox-3.6.4以降のビルドについて
 
Modest02 freetype2 on fx-3.6 win32
Modest02 freetype2 on fx-3.6 win32Modest02 freetype2 on fx-3.6 win32
Modest02 freetype2 on fx-3.6 win32
 
Nseg8 最近のパソコン事情について
Nseg8 最近のパソコン事情についてNseg8 最近のパソコン事情について
Nseg8 最近のパソコン事情について
 
Nseg5 第17回北海道開発オフ参加報告
Nseg5 第17回北海道開発オフ参加報告Nseg5 第17回北海道開発オフ参加報告
Nseg5 第17回北海道開発オフ参加報告
 
Nseg3 firefoxとmozillaコミュニティの紹介
Nseg3 firefoxとmozillaコミュニティの紹介Nseg3 firefoxとmozillaコミュニティの紹介
Nseg3 firefoxとmozillaコミュニティの紹介
 
Nseg2 自宅サーバ運用について
Nseg2 自宅サーバ運用についてNseg2 自宅サーバ運用について
Nseg2 自宅サーバ運用について
 
Devdo17 nsegの現状と課題
Devdo17 nsegの現状と課題Devdo17 nsegの現状と課題
Devdo17 nsegの現状と課題
 
高橋Rf.html + printplus
高橋Rf.html + printplus高橋Rf.html + printplus
高橋Rf.html + printplus
 

Recently uploaded

Recently uploaded (10)

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 

Nseg92 kotlin null safety

  • 1. 2017/9/16 NSEG Vol.92 kotlin Null Safety by ABE Hiroki aka hATrayflood
  • 2. y y 2017/9/16 NSEG Vol.92 お前 誰︖by ABE Hiroki aka hATrayflood
  • 3. y y 2017/9/16 NSEG Vol.92 ⾃⼰紹介 ・名前︓アベヒロキ (@hATrayflood) ・職業︓⾃宅サーバ管理者 ・URL︓rayflood.org/diary-temp/ ・地元︓東部町 by ABE Hiroki aka hATrayflood
  • 4. y y 2017/9/16 NSEG Vol.92 kotlin とは by ABE Hiroki aka hATrayflood
  • 5. y y 2017/9/16 NSEG Vol.92 JetBrains (IntelliJ) 開発 by ABE Hiroki aka hATrayflood
  • 6. y y 2017/9/16 NSEG Vol.92 alt java っぽい⾔語 by ABE Hiroki aka hATrayflood
  • 7. y y 2017/9/16 NSEG Vol.92 javaと相互 呼び出し可能 by ABE Hiroki aka hATrayflood
  • 8. y y 2017/9/16 NSEG Vol.92 android 公式⾔語 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
  • 10. y y 2017/9/16 NSEG Vol.92 . ∧_∧ ( ´∀`)< ぬるぽ by ABE Hiroki aka hATrayflood
  • 11. y y 2017/9/16 NSEG Vol.92 ( ・∀・)  | | ガッ と    )   | | Y /ノ     ⼈ / )  <  >__Λ ∩ _/し' // V`Д´)/ ←>>1 (_フ⼺          / by ABE Hiroki aka hATrayflood
  • 12. y y 2017/9/16 NSEG Vol.92 を軽減できる 仕組み by ABE Hiroki aka hATrayflood
  • 13. y y 2017/9/16 NSEG Vol.92 基本by ABE Hiroki aka hATrayflood
  • 14. y y 2017/9/16 NSEG Vol.92 val hoge: String by ABE Hiroki aka hATrayflood
  • 15. y y 2017/9/16 NSEG Vol.92 val fuga: String? by ABE Hiroki aka hATrayflood
  • 16. y y 2017/9/16 NSEG Vol.92 違いは︖ by ABE Hiroki aka hATrayflood
  • 17. y y 2017/9/16 NSEG Vol.92 末尾の ? by ABE Hiroki aka hATrayflood
  • 18. y y 2017/9/16 NSEG Vol.92 val hoge: String null不可 by ABE Hiroki aka hATrayflood
  • 19. y y 2017/9/16 NSEG Vol.92 val fuga: String? null許容 by ABE Hiroki aka hATrayflood
  • 20. y y 2017/9/16 NSEG Vol.92 val hoge: String = null コンパイルエラー by ABE Hiroki aka hATrayflood
  • 21. y y 2017/9/16 NSEG Vol.92 半ば型が違うもの として扱われる 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
  • 24. y y 2017/9/16 NSEG Vol.92 メソッドの引数と 戻り値も同様 by ABE Hiroki aka hATrayflood
  • 25. y y 2017/9/16 NSEG Vol.92 基本2 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
  • 28. y y 2017/9/16 NSEG Vol.92 どうするか 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
  • 30. y y 2017/9/16 NSEG Vol.92 nullチェック で渡せる 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
  • 32. y y 2017/9/16 NSEG Vol.92 ?: 演算⼦で nullの代替値を 設定できる 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
  • 35. y y 2017/9/16 NSEG Vol.92 どうするか 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
  • 39. y y 2017/9/16 NSEG Vol.92 禁じ⼿ 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
  • 42. y y 2017/9/16 NSEG Vol.92 禁じ⼿2 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
  • 45. y y 2017/9/16 NSEG Vol.92 まとめby ABE Hiroki aka hATrayflood
  • 46. y y 2017/9/16 NSEG Vol.92 適切に使えば コンパイル時点で ぬるぽ回避可能 なのは⼤きい by ABE Hiroki aka hATrayflood
  • 47. y y 2017/9/16 NSEG Vol.92 抜け道もあるので 気を付けよう (特に外部ライブラリ) 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
  • 51. y y