ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

implicit ClassManifest

2010-12-30 23:59:52 | PG(Scala)

暗黙の型変換(implicit conversion)に続いて、implicitキーワードを使っている暗黙の引数(implicit parameter)についてメモ。

次いで、それがよく使われると思われるClassManifestについてメモ。
ClassManifestをメソッドの引数に渡す方法は分かったけど、どういう呼び出しを経てClassManifestのインスタンスが決まるのか、ちっとも理解できない><
単純なClassManifest[Int]だと、実体としてはClassManifestオブジェクトのIntというフィールドが返ってるみたいだし、複雑なArray[List[Int]]とかもそれらしいインスタンスが生成されている。
implicitly[ClassManifest]」を実行したときに出てくるエラーから、なんとなくPredefのconforms関数が絡んでいるような気がするけど…。

あるスコープ内でどんな暗黙メソッド・値が使われるか、確認する方法は無いのかなぁ。
scalacでコンパイルオプション「-Xprint:packageobjects」「-Xprint:typer」をつけてコンパイルしてみると、その間で暗黙の引数が解決されたのは分かるんだけど、どういう理由でそうなったのかは全く分からん(苦笑)
ただ単にClassManifestを使うだけだったら全く困らないけど、気になるー。



最新の画像もっと見る

コメントを投稿