Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
nseg92 kotlin Null Safety
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
hATrayflood
September 16, 2017
Programming
61
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
270
NSEG 19/08 Web VideoMarkの紹介
h_rayflood
1
160
glnagano-python peewee
h_rayflood
0
390
nseg100 pythonでwebサーバ
h_rayflood
0
30
nseg77-vol1 USBブートのインストーラを作る
h_rayflood
0
97
nseg77-vol2 野良リポジトリを作る
h_rayflood
0
51
Other Decks in Programming
See All in Programming
自動化したのに回らないテスト運用の壁ーAI時代の品質責任と生産性
mfunaki
1
130
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
730
Go言語とトイモデルで学ぶTransformerの気持ち / fukuokago23-transformer
monochromegane
0
180
PHP Application における Kubernetes 内 gRPC 通信
ganchiku
0
590
2年かけて Deno に DOMMatrix を実装した話 / How I implemented DOMMatrix in Deno over two years
petamoriken
0
210
FDEが実現するAI駆動経営の現在地
gonta
2
280
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.7k
php-fpmのプロセスが枯渇した日-調査・対処・そして本当にやるべきだったこと-
shibuchaaaan
0
290
運用ダッシュボードの設計を誰も教えてくれないのだけどみなさんどうしてるんですか? - チームに監視するという文化を根付かせるための第一歩を踏みたい -
satoshi256kbyte
1
120
ルールを書いて終わらせないハーネスエンジニアリング
yug1224
5
1.9k
今さら聞けない .NET CLI
htkym
0
190
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
600
Featured
See All Featured
Practical Orchestrator
shlominoach
191
12k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
430
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.9k
Exploring anti-patterns in Rails
aemeredith
3
460
Agile that works and the tools we love
rasmusluckow
331
22k
So, you think you're a good person
axbom
PRO
2
2.1k
The Pragmatic Product Professional
lauravandoore
37
7.4k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.8k
Discover your Explorer Soul
emna__ayadi
2
1.3k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
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