今週のコーディング素振り(2018/3/25)

3月 25, 2018 / Posted by 亀田 義裕 / 0 Comments

今週試し書きしたコードです。

typealiasを使う場面:

型にわかりやすい名前をつけたいとき

ジェネリックタイプにも名前をつけられる。

わかりやすいプログラミングには適切な概念に適切な名前を付けられることが重要なので、たぶん使い所がありそう。

gitlib2 (rugged) を使って git レポジトリを操作するサンプルを書いた。

コミットメッセージを表示した。

メモ: git cat-file -p a6d2afb2d9af72b17fcbc326f73c59595a2632e6 で、gitが格納してる オブジェクトの内容を見れる

練習として、 git のコマンドを実装していきたいんですよね。その準備です。

gitの配管コマンドと呼ばれる低レベルコマンドを使って、git add や git commit でやってる処理を実現してみました。
gitの設計は本当に美しいと感じます。

docker の勉強をしました。

nginxイメージがアップされた直後みたいでimageがビルドされてなかったらしく、docker run nginx が失敗して ファッ!? ってなりました。
そういうこともあるんですね。


https://qiita.com/opengl-8080/items/36351dca891b6d9c9687

拡張関数で書いてみた。

fun List.myMap2(cb: (T) -> R): List

fun Iterable.myMap3(cb: (T) -> R): List

interface ListはCollectionを継承していて、CollectionはさらにIterableを継承している。 Iterableはiterator() のみを提供しているinterface。 Kotlin組み込みのmapメソッドも、Iterableへの拡張関数として定義されている。

https://github.com/JetBrains/kotlin/blob/1.2.40_182/libraries/stdlib/src/generated/_Collections.kt#L1245

Kotlinの拡張関数の仕組みを使って、コレクションメソッドをいろいろ実装してみました。楽しい!

今週は以上です。