狠狠撸

狠狠撸Share a Scribd company logo
Kotlinで?
マッチョ?????
する話
Retty Tech Cafe #8
About Me
Shinobu Okano
@operandoOS
Mercari, Inc.
Souzoh, Inc.
碍辞迟濒颈苍て?マッチョする话
毎日30分 Kotlinやってます?
? 雑に雑にメモを残してます
? http://hack-it-iron.hatenablog.com/archive/
category/Kotlin
Tuple
複数個の値を組みにしてまとめたもの
ようは
一時的なスコープで複数個のデータの組み合わせが?
欲しいけど、Classを定義するほどでもないなー?
って時に有効
Guild
https://github.com/operando/Guild/
Simple java tuples.
なぜTupleが必要だったか
? Android + JSON-RPC
? http://www.slideshare.net/shinobuokano7/
android-jsonrpc
? 理由書いてあるかも?
KotlinのPair
val pair = 1 to "pair"
println(pair.first) // 1
println(pair.second) // pair
Tripleもあるよ
val triple = Triple(1, true, "Triple")
println(triple.first) // 1
println(triple.second) // true
println(triple.third) // Triple
これをみておもった?
こう書けないの??
val triple = 1 to true to "Triple"
こう書けないの??
val triple = A to B to C
そのままでは書けなーい
? Pair in Pairになってしまう
? Pair<Pair<A,B>,C>
? ((1,true)"Triple")
なーんだ、カッコわるい?
そもそも Pairのtoって?
どうなってるんだ??
そもそも Pairのtoってどうなってるんだ??
public infix fun <A, B> <A, B>.to(that: B)?
: Pair<A, B> = Pair(this, that)
なるほど?
いや、まてよ?
同じように拡張関数?
作ればできるか?
PairからTripleを作る拡張関数を書いてみた
infix fun <A, B, C> Pair<A, B>.to(that: C)?
: Triple<A, B, C> = ?
Triple(this.first, this.second, that)
じゃtoでつなげて?
書いてみよう
じゃtoでつなげて書いてみよう
val triple = 1 to true to "Triple"
println(triple.first) // 1
println(triple.second) // true
println(triple.third) // Triple
println(triple.javaClass) // class kotlin.Triple
できた?
もっとマッスル?????
したいでしょ?
4つの値を持つ?????
Tuple Quartetを作ろう
4つの値を持つTuple Quartetを作ろう
class Quartet<out F, out S, out T, out FO>(
val first: F,
val second: S,
val third: T,
val fourth: FO,) {
override fun toString(): String {
return "Quartet(first=$first, second=$second,?
third=$third, fourth=$fourth)"
}
}
toつなぎでQuartetを?
作れるようにする
TripleからQuartetを作る拡張関数を書く
infix fun <A, B, C, D> Triple<A, B, C>.to(that: D):
Quartet<A, B, C, D> = ?
Quartet(this.first, this.second, this.third, that)
Quartet使ってみよう
val quartet = 1 to 10L to true to "quartet"
println(quartet.first) // 1
println(quartet.second) // 10
println(quartet.third) // true
println(quartet.fourth) // quartet
もっとマッスル??????
ほしくない??
5つの値を持つ??????
Tuple Quintetを作ろう
5つの値を持つTuple Quintetを作ろう
class Quintet<out F, out S, out T, out FO, out FI>(
val first: F,
val second: S,
val third: T,
val fourth: FO,
val five: FI) {
override fun toString(): String {
return "Quintet(first=$first, second=$second,?
third=$third, fourth=$fourth, five=$five)"
}
}
はいはい、toをつなげて?
書いて作りたいよね
はいはい、拡張関数拡張関数
infix fun <A, B, C, D, E> Quartet<A, B, C, D>.to(that: E):
Quintet<A, B, C, D, E> = Quintet(this.first, this.second,
this.third, this.fourth, that)
Quintet使ってみよう
val quintet = 1 to 10L to true to LocalDateTime.now() to "quintet"
println(quintet.first) // 1
println(quintet.second) // 10
println(quintet.third) // true
println(quintet.fourth) // 2016-12-09T19:45:38.959
println(quintet.five) // quintet
尝颈产谤补谤测にしました?????
Guild Kotlin
https://github.com/operando/Guild/
tree/master/guild-kotlin
いつかjCenterとかにあげまーす
Links
? PairからTripleを作る拡張関数を書いてみた - 2016/12/03の30分 Kotlinメモ
? http://hack-it-iron.hatenablog.com/entry/2016/12/03/165601
? 4つと5つ値を持つTupleを作ってみた - 2016/12/04の30分 Kotlinメモ
? http://hack-it-iron.hatenablog.com/entry/2016/12/04/223509
? Tupleライブラリ GuildのKotlin版作ってみた - 2016/12/09の30分 Kotlinメモ
? http://hack-it-iron.hatenablog.com/entry/2016/12/09/172657
? Guild
? https://github.com/operando/Guild/
Thanks!

More Related Content

What's hot (20)

PDF
10分でわかる笔测迟丑辞苍の开発环境
Hisao Soyama
?
PDF
贬耻产辞迟をはじめる
nasa9084
?
PDF
蝉肠颈办颈迟-濒别补谤苍を用いた机械学习チュートリアル
敦志 金谷
?
KEY
丑耻产辞迟で快适叠翱罢生活
Kazufumi Otani
?
PDF
Python東海Vol.5 IPythonをマスターしよう
Hiroshi Funai
?
PDF
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
Takanori Suzuki
?
PDF
ChatOps with Hubot
Yoshiaki Yoshida
?
PPTX
贬耻产辞迟を使って产辞迟をつくろう!
Daisuke Kikuchi
?
PDF
久しぶりの笔测迟丑辞苍で驳辞辞驳濒别のアレを制御してみた
Shohei Tai
?
PPTX
Slack + Hubot でお前の一番好きな二次元嫁キャラと一緒に仕事をする
sairoutine
?
KEY
PerlのTwitterモジュールの紹介 #twtr_hack
鉄次 尾形
?
PDF
笔测迟丑辞苍入门
Shohei Okada
?
PDF
IPython notebookを使おう
Kazufumi Ohkawa
?
PPTX
Pythonスタートアップ勉強会201109 python入門
Takayuki Shimizukawa
?
PPTX
俺とPrivate Forkと炭の選び方とC++からRubyへのブレイクスルーとポモドーロテクニックとコミュニティ貢献と浪人アカウントと糖尿病
Masayuki KaToH
?
PPTX
2017/12/21 虎の穴 Python勉強会
虎の穴 開発室
?
PDF
笔测迟丑辞苍はどうやって濒别苍関数で长さを手にいれているの?
Takayuki Shimizukawa
?
PPTX
PSR-1 と PSR-2 を 5分でざっくり理解する
Wataru Terada
?
PDF
Python 2/3コード共存戦略 #osakapy
敦志 金谷
?
PDF
Python & PyConJP 2014 Report
gree_tech
?
10分でわかる笔测迟丑辞苍の开発环境
Hisao Soyama
?
贬耻产辞迟をはじめる
nasa9084
?
蝉肠颈办颈迟-濒别补谤苍を用いた机械学习チュートリアル
敦志 金谷
?
丑耻产辞迟で快适叠翱罢生活
Kazufumi Otani
?
Python東海Vol.5 IPythonをマスターしよう
Hiroshi Funai
?
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
Takanori Suzuki
?
ChatOps with Hubot
Yoshiaki Yoshida
?
贬耻产辞迟を使って产辞迟をつくろう!
Daisuke Kikuchi
?
久しぶりの笔测迟丑辞苍で驳辞辞驳濒别のアレを制御してみた
Shohei Tai
?
Slack + Hubot でお前の一番好きな二次元嫁キャラと一緒に仕事をする
sairoutine
?
PerlのTwitterモジュールの紹介 #twtr_hack
鉄次 尾形
?
笔测迟丑辞苍入门
Shohei Okada
?
IPython notebookを使おう
Kazufumi Ohkawa
?
Pythonスタートアップ勉強会201109 python入門
Takayuki Shimizukawa
?
俺とPrivate Forkと炭の選び方とC++からRubyへのブレイクスルーとポモドーロテクニックとコミュニティ貢献と浪人アカウントと糖尿病
Masayuki KaToH
?
2017/12/21 虎の穴 Python勉強会
虎の穴 開発室
?
笔测迟丑辞苍はどうやって濒别苍関数で长さを手にいれているの?
Takayuki Shimizukawa
?
PSR-1 と PSR-2 を 5分でざっくり理解する
Wataru Terada
?
Python 2/3コード共存戦略 #osakapy
敦志 金谷
?
Python & PyConJP 2014 Report
gree_tech
?

More from Shinobu Okano (20)

PDF
OnActivityResult - おまえら!もうonActivityResultでswitchとif書く時代は終わりだぞ!
Shinobu Okano
?
PDF
Android Framework Code Readingのしおり ver 1.2
Shinobu Okano
?
PDF
まったりAndroid Framework Code Reading #4
Shinobu Okano
?
PDF
尝颈驳丑迟飞别颈驳丑迟-厂迟谤别补尘-础笔滨のある础苍诲谤辞颈诲アフ?リ开発
Shinobu Okano
?
PDF
shinobu.apk #3
Shinobu Okano
?
PDF
Android + JSON-RPC
Shinobu Okano
?
PDF
Inside Android N
Shinobu Okano
?
PDF
Gradle PluginとCIと俺
Shinobu Okano
?
PDF
shinobu.apk #2
Shinobu Okano
?
PDF
まったりAndroid Framework Code Reading #3
Shinobu Okano
?
PDF
Android Framework Code Readingのしおり ver 1.1
Shinobu Okano
?
PDF
碍辞迟濒颈苍にお触り
Shinobu Okano
?
PDF
顿谤辞颈诲碍补颈驳颈アフ?リを厂辫辞辞苍て?全画面スクショするそ?い\(镑辞镑)/
Shinobu Okano
?
PDF
Gradle PluginとTwitterとス?ン ト?コ キ?ヨ?シ!
Shinobu Okano
?
PDF
颁丑谤辞尘别と础苍诲谤辞颈诲の过去?现在?未来
Shinobu Okano
?
PDF
Android Dev Tools Knowledge
Shinobu Okano
?
PDF
shinobu.apk #1
Shinobu Okano
?
PDF
ChromeとAndroidの 過去?現在?未来 ver 0.1
Shinobu Okano
?
PDF
5分で资料作って厂濒颈诲别厂丑补谤别にアップロードする錬金术
Shinobu Okano
?
PDF
尝辞驳肠补迟の话
Shinobu Okano
?
OnActivityResult - おまえら!もうonActivityResultでswitchとif書く時代は終わりだぞ!
Shinobu Okano
?
Android Framework Code Readingのしおり ver 1.2
Shinobu Okano
?
まったりAndroid Framework Code Reading #4
Shinobu Okano
?
尝颈驳丑迟飞别颈驳丑迟-厂迟谤别补尘-础笔滨のある础苍诲谤辞颈诲アフ?リ开発
Shinobu Okano
?
shinobu.apk #3
Shinobu Okano
?
Android + JSON-RPC
Shinobu Okano
?
Inside Android N
Shinobu Okano
?
Gradle PluginとCIと俺
Shinobu Okano
?
shinobu.apk #2
Shinobu Okano
?
まったりAndroid Framework Code Reading #3
Shinobu Okano
?
Android Framework Code Readingのしおり ver 1.1
Shinobu Okano
?
碍辞迟濒颈苍にお触り
Shinobu Okano
?
顿谤辞颈诲碍补颈驳颈アフ?リを厂辫辞辞苍て?全画面スクショするそ?い\(镑辞镑)/
Shinobu Okano
?
Gradle PluginとTwitterとス?ン ト?コ キ?ヨ?シ!
Shinobu Okano
?
颁丑谤辞尘别と础苍诲谤辞颈诲の过去?现在?未来
Shinobu Okano
?
Android Dev Tools Knowledge
Shinobu Okano
?
shinobu.apk #1
Shinobu Okano
?
ChromeとAndroidの 過去?現在?未来 ver 0.1
Shinobu Okano
?
5分で资料作って厂濒颈诲别厂丑补谤别にアップロードする錬金术
Shinobu Okano
?
尝辞驳肠补迟の话
Shinobu Okano
?
Ad

Recently uploaded (9)

PDF
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
フォーガンシー
?
PDF
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
?
PDF
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
?
PDF
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
?
PPTX
色について.pptx .
iPride Co., Ltd.
?
PPTX
勉強会_ターミナルコマント?入力迅速化_20250620. pptx. .
iPride Co., Ltd.
?
PDF
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
?
PPTX
Vibe Codingを始めよう ?Cursorを例に、ノーコードでのプログラミング体験?
iPride Co., Ltd.
?
PDF
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
?
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
フォーガンシー
?
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
?
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
?
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
?
色について.pptx .
iPride Co., Ltd.
?
勉強会_ターミナルコマント?入力迅速化_20250620. pptx. .
iPride Co., Ltd.
?
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
?
Vibe Codingを始めよう ?Cursorを例に、ノーコードでのプログラミング体験?
iPride Co., Ltd.
?
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
?
Ad

碍辞迟濒颈苍て?マッチョする话