いい一日はいい睡眠から いい睡眠はいい一日から

読んだ記事のあれこれを書いていきます

2020/03/29

  • 10時前起床 x
  • 11時前外出 o
  • 英単語10words o
  • リスニング o
  • Scala o
  • 入金 o
  • 競プロ x
  • Twitterをあまり見ない o

10時前起床

AM10:05起床

Scala

ケースクラスとunapply

おさらいとして以下を見る.

scala> case class Word(word: String)
defined class Word

scala> Word("Wow!") match { case Word(word) => println(word) }
Wow!

このように,ケースクラスはパターンマッチにおいて型をマッチして中のwordをcase句の式で取り出して利用することができた.このときのWordは抽出子という.
これはcase classが内部でunapplyというメソッドを実装しているから利用可能である.したがって通常のクラスでもunapplyを利用すれば抽出子として利用可能になる.
簡単な実装としてはclassを定義した後に,objectの中でunapplyとして取り出す.注意点としてunapplyメソッドはOption型の戻り値を返す必要がある.

qiita.com

エイリアスtype

 type Entry = (Int, String)

リフレクション

プログラムのコード自体からクラスやメソッドなどの型の概念を操作するテクニック.とあるが難しかったので復習が必要そう.

マクロ

これもむずいので復習が必要.