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
apply() 要らなくない?
Search
Motoi Washida
August 22, 2017
Programming
2
1.2k
apply() 要らなくない?
2017年の夏のKotlin LT祭での発表資料です。
https://kotlin.connpass.com/event/61427/
Motoi Washida
August 22, 2017
Tweet
Share
More Decks by Motoi Washida
See All by Motoi Washida
アプリのための「レイヤー化」アーキテクチャ / Droid Meetup 2019-03
wm3
0
2.4k
Material Design の社内勉強会を行った / Android Engineer Design 1
wm3
1
160
API仕様書から自前でコード生成して運用した話 / DroidKaigi 2018 Reject Conference
wm3
0
810
Firebase Analytics で 画像ロードのパフォーマンス を測定し、改善をした話
wm3
2
1.3k
Tunnel 社内勉強会 Swift の紹介
wm3
0
250
iOS の Reactive 系ライブラリ
wm3
1
880
Other Decks in Programming
See All in Programming
GitHub Actionsで泣かないためにやっておきたい設定 / Recommended GHA settings to avoid crying
pinkumohikan
3
530
Snowflakeで眠ったデータを起こそう!
estie
0
110
educure_カリキュラム生操作マニュアル.pdf
linew_official
0
710
if constexpr文はテンプレート世界のラムダ式である
faithandbrave
3
640
PostmanでAPIの動作確認が楽になった話
h455h1
0
160
ONE WEDGE_company_guide
1wedge_one
0
460
Hanami and htmx
bkuhlmann
0
210
新宿ダンジョンを可視化してみた
satoshi7190
2
240
MicrosoftのPlatform Engineeringガイドを読んで実際になにかやってみた
ymd65536
1
300
Milestoner
bkuhlmann
1
410
冗長なエラーログを削減し、スタックトレースを手に入れる / Reducing Verbose Error Logs and Obtaining Stack Traces
upamune
0
430
ゆるい個人開発のススメ
kuroppe1819
10
980
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
2
1.3k
Building Applications with DynamoDB
mza
88
5.6k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
Bash Introduction
62gerente
604
210k
Adopting Sorbet at Scale
ufuk
68
8.6k
Teambox: Starting and Learning
jrom
128
8.4k
Build The Right Thing And Hit Your Dates
maggiecrowley
24
2k
Writing Fast Ruby
sferik
621
60k
Six Lessons from altMBA
skipperchong
21
3k
Agile that works and the tools we love
rasmusluckow
325
20k
Testing 201, or: Great Expectations
jmmastey
28
6.3k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
21
1.6k
Transcript
BQQMZ 銲זֻזְ 똲歊㛇
荈䊹稱➜
荈䊹稱➜ ˖ せ똲歊㛇 ˖ 5XJUUFS!XN ˖ "OESPJEؒٝآص، J04瘝װ ˖
3PPN$MJQהְֲ؎ٝذٔ،ⱖ溪ך $(.涪⚥
(PPHMF*0ך傈ח,PUMJO䱰欽׃ת׃
ַֿ ,PUMJO娖♲٠剢ך 蕯鰳罏ָזַ鎉ְתׅ
➙傈鎉ְְ✲
None
BQQMZ
銲זֻזְ
None
BQQMZ
أ؝٦فꟼ侧ך♧א ⴱ劍⻉ָٖؒؖٝز ח剅ֽ
BQQMZ ⢪זְה // { "key1": 1, "key2": 8 } //
ΛҾʹͯؔ͠Λݺͼ͍ͨ val map = Bundle() map.putInt("key1", 1) map.putInt("key2", 8) someFunction(map)
BQQMZ ⢪ֲה // { "key1": 1, "key2": 8 } //
ΛҾʹͯؔ͠Λݺͼ͍ͨ someMethod(Bundle().apply { putInt("key1", 1) putInt("key2", 8) })
瀉ְ
ֶ׃ׯ
,PUMJOזדכ ˟ הְֲ״+BWB 4XJGU鴟חכזְ
ד✉欽ׅה 汤ְ湡鋅ֲ
None
ㄎן⳿׃㼎韋ָ ♶僇然ח
⢽
⢽ class Point { var x = 0; var y
= 0 } var y = 0 // มએݴ val p = Point().apply { x = 3 y = 4 // Ͳͬͪͷ y? } println("p = (${p.x}, ${p.y})") // p = (3, 4) Λग़ྗͦ͠͏
⢽ class Point { var x = 0; var y
= 0 } var y = 0 // มએݴ val p = Point().apply { x = 3 y = 4 // Ͳͬͪͷ y? } println("p = (${p.x}, ${p.y})") // p = (3, 0) Λग़ྗ (※)
➿剏周
BMTP
➿剏周 class Point { var x = 0; var y
= 0 } var y = 0 val p = Point().apply { x = 3 y = 4 } println("p = (${p.x}, ${p.y})") // p = (3, 0) Λग़ྗ
➿剏周 BMTP class Point { var x = 0; var
y = 0 } var y = 0 val p = Point().also { it.x = 3 it.y = 4 } println("p = (${p.x}, ${p.y})") // p = (3, 4) Λग़ྗ
せ➰ֹ䒷侧
➿剏周 class Point { var x = 0; var y
= 0 } var y = 0 val p = Point().apply { x = 3 y = 4 } println("p = (${p.x}, ${p.y})") // p = (3, 0) Λग़ྗ
➿剏周 せ➰ֹ䒷侧 class Point(val x: Int, val y: Int) var
y = 0 val p = Point( x = 3, y = 4 ) println("p = (${p.x}, ${p.y})") // p = (3, 4) Λग़ྗ
猘鋅
BQQMZ ״BMTP ך倯ָ㸜Ⰻ
➙儗ךⶰ⡲欽ָ㼰זְ 鏣鎘أة؎ٕז ⢪ֲ堣⠓ָקרזְ
את
BQQMZ SVO XJUIכ MFU BMTPד➿欽
דְְךדכ
None
׀䠐鋅꧊⚥
ΤϯδχΞืूத ͓ؾܰʹ࿈བྷ͍ͩ͘͞ʂ