プログラミングある型Baseを引数に取るようなコンテクストで他の型のインスタンスを使おうとすると、当然、通常ならばコンパイラがエラーを吐く。drinkメソッドはPetBottleには存在しないこのように、ある型を暗黙に別の型に変換したいときがある。defはこの問題を解決する。implicitを付けてdefされた関数は、変換前の型のインスタンスから変換後の型のインスタンスへの変換を自動的に行なうためのハンドラのようにふるまう。このテクニックにより、instance.getXX()のような処理を隠匿することができる。使いすぎると変換を追えなくなりバグのもとなので使用はほどほどに。自動的にPetBottle2DrinkContentが呼び出され、DrinkContentのdrinkが呼ばれるこのテクニックは、既存のSealed属性のクラスに新たな機能を追加するときにも使用できる。週間)Web開発者です。Lisp/Perl/Goまわりの話題が多いです。月別アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。