今週試し書きしたコードです。
typealiasを使う場面:
型にわかりやすい名前をつけたいとき
ジェネリックタイプにも名前をつけられる。
わかりやすいプログラミングには適切な概念に適切な名前を付けられることが重要なので、たぶん使い所がありそう。
gitlib2 (rugged) を使って git レポジトリを操作するサンプルを書いた。
コミットメッセージを表示した。
メモ: git cat-file -p a6d2afb2d9af72b17fcbc326f73c59595a2632e6 で、gitが格納してる オブジェクトの内容を見れる
練習として、 git のコマンドを実装していきたいんですよね。その準備です。
gitの配管コマンドと呼ばれる低レベルコマンドを使って、git add や git commit でやってる処理を実現してみました。
gitの設計は本当に美しいと感じます。
docker の勉強をしました。
nginxイメージがアップされた直後みたいでimageがビルドされてなかったらしく、docker run nginx が失敗して ファッ!? ってなりました。
そういうこともあるんですね。
拡張関数で書いてみた。
fun <t, r=""> List.myMap2(cb: (T) -> R): List
fun <t, r=""> Iterable.myMap3(cb: (T) -> R): List
interface ListはCollectionを継承していて、CollectionはさらにIterableを継承している。 Iterableはiterator() のみを提供しているinterface。 Kotlin組み込みのmapメソッドも、Iterableへの拡張関数として定義されている。
Kotlinの拡張関数の仕組みを使って、コレクションメソッドをいろいろ実装してみました。楽しい!今週は以上です。
京都オフィス勤務のエンジニア。アジャイル開発のエキスパートで、お客様とのコミュニケーション能力も高く、ファシリテーターとして各方面で重宝されているため多忙を極めている。