Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
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...
これをみておもった🤔
こう書けないの?🤔
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...
じゃtoでつなげて

書いてみよう
じゃtoでつなげて書いてみよう
val triple = 1 to true to "Triple"
println(triple.first) // 1
println(triple.second) // true
println(tripl...
できた☺
もっとマッスル💪💪💪💪

したいでしょ?
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...
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, ...
Quartet使ってみよう
val quartet = 1 to 10L to true to "quartet"
println(quartet.first) // 1
println(quartet.second) // 10
printl...
もっとマッスル💪💪💪💪💪

ほしくない??
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,
va...
はいはい、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...
Quintet使ってみよう
val quintet = 1 to 10L to true to LocalDateTime.now() to "quintet"
println(quintet.first) // 1
println(quint...
Libraryにしました💪💪💪💪💪
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
•...
Thanks!
Kotlinでマッチョする話
Nächste SlideShare
Wird geladen in …5
×

Kotlinでマッチョする話

1.244 Aufrufe

Veröffentlicht am

Kotlinでマッチョする話

Retty Tech Cafe #8
https://retty.connpass.com/event/45628/

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Kotlinでマッチョする話

  1. 1. Kotlinで
 マッチョ💪💪💪💪💪 する話 Retty Tech Cafe #8
  2. 2. About Me Shinobu Okano @operandoOS Mercari, Inc. Souzoh, Inc.
  3. 3. 毎日30分 Kotlinやってます💪 • 雑に雑にメモを残してます • http://hack-it-iron.hatenablog.com/archive/ category/Kotlin
  4. 4. Tuple 複数個の値を組みにしてまとめたもの
  5. 5. ようは 一時的なスコープで複数個のデータの組み合わせが
 欲しいけど、Classを定義するほどでもないなー
 って時に有効
  6. 6. Guild https://github.com/operando/Guild/ Simple java tuples.
  7. 7. なぜTupleが必要だったか • Android + JSON-RPC • http://www.slideshare.net/shinobuokano7/ android-jsonrpc • 理由書いてあるかも?
  8. 8. KotlinのPair val pair = 1 to "pair" println(pair.first) // 1 println(pair.second) // pair
  9. 9. Tripleもあるよ val triple = Triple(1, true, "Triple") println(triple.first) // 1 println(triple.second) // true println(triple.third) // Triple
  10. 10. これをみておもった🤔
  11. 11. こう書けないの?🤔 val triple = 1 to true to "Triple"
  12. 12. こう書けないの?🤔 val triple = A to B to C
  13. 13. そのままでは書けなーい • Pair in Pairになってしまう • Pair<Pair<A,B>,C> • ((1,true)"Triple")
  14. 14. なーんだ、カッコわるい😕
  15. 15. そもそも Pairのtoって
 どうなってるんだ?🤔
  16. 16. そもそも Pairのtoってどうなってるんだ?🤔 public infix fun <A, B> <A, B>.to(that: B)
 : Pair<A, B> = Pair(this, that)
  17. 17. なるほど🐼
  18. 18. いや、まてよ🤔
  19. 19. 同じように拡張関数
 作ればできるか☺
  20. 20. PairからTripleを作る拡張関数を書いてみた infix fun <A, B, C> Pair<A, B>.to(that: C)
 : Triple<A, B, C> = 
 Triple(this.first, this.second, that)
  21. 21. じゃtoでつなげて
 書いてみよう
  22. 22. じゃ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
  23. 23. できた☺
  24. 24. もっとマッスル💪💪💪💪
 したいでしょ?
  25. 25. 4つの値を持つ💪💪💪💪
 Tuple Quartetを作ろう
  26. 26. 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)" } }
  27. 27. toつなぎでQuartetを
 作れるようにする
  28. 28. 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)
  29. 29. 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
  30. 30. もっとマッスル💪💪💪💪💪
 ほしくない??
  31. 31. 5つの値を持つ💪💪💪💪💪
 Tuple Quintetを作ろう
  32. 32. 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)" } }
  33. 33. はいはい、toをつなげて
 書いて作りたいよね
  34. 34. はいはい、拡張関数拡張関数 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)
  35. 35. 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
  36. 36. Libraryにしました💪💪💪💪💪
  37. 37. Guild Kotlin https://github.com/operando/Guild/ tree/master/guild-kotlin いつかjCenterとかにあげまーす
  38. 38. 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/
  39. 39. Thanks!

×