Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
nseg92 kotlin Null Safety
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
hATrayflood
September 16, 2017
Programming
68
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
nseg92 kotlin Null Safety
https://nseg.connpass.com/event/67001/
hATrayflood
September 16, 2017
More Decks by hATrayflood
See All by hATrayflood
NSEG 19/08 chromiumカスタムビルド
h_rayflood
1
210
NSEG 19/08 chromiumブランディングとローカライズ
h_rayflood
0
260
NSEG 19/08 chromium内部構造とIPC
h_rayflood
0
280
NSEG 19/08 Web VideoMarkの紹介
h_rayflood
1
170
glnagano-python peewee
h_rayflood
0
400
nseg100 pythonでwebサーバ
h_rayflood
0
35
nseg77-vol1 USBブートのインストーラを作る
h_rayflood
0
100
nseg77-vol2 野良リポジトリを作る
h_rayflood
0
54
Other Decks in Programming
See All in Programming
Androidだけじゃない、DroidKaigiで広がった私の技術スタック
akkeylab
0
110
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
760
そのリトライ、死んだコネクションを使い回していませんか ── GoのHTTPクライアントとHTTP/2を実プロダクト障害から学び直す
myus4a
0
370
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
310
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
2.6k
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
140
すこし踏み込む CancellationToken
htkym
2
1.6k
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.3k
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
440
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
260
AI Agent時代のリアーキテクチャ戦略と実践
hokaccha
9
5.3k
Featured
See All Featured
Building the Perfect Custom Keyboard
takai
2
890
Google's AI Overviews - The New Search
badams
0
1.6k
Mobile First: as difficult as doing things right
swwweet
225
10k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
Testing 201, or: Great Expectations
jmmastey
46
8.3k
A Modern Web Designer's Workflow
chriscoyier
699
190k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
The SEO identity crisis: Don't let AI make you average
varn
0
570
How to Think Like a Performance Engineer
csswizardry
28
2.9k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
Ruling the World: When Life Gets Gamed
codingconduct
0
380
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
380
Transcript
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