Part35: 動的型

ことり「長きにわたって勉強してきたKotlin入門も、今回が最終回となりました」
凛「3ヶ月は長かったにゃ~」
ことり「結局Elixirと同じくらいのボリュームになったね」
凛「凛の頭はそろそろOutOfMemoryにゃ・・・」


ことり「今回は動的型。Kotlinは型付けの強い言語だけど、他の言語との親和性のためにそれを緩めることができるの」
凛「そういえば、JVM以外にもJavaScriptのコード生成とかもできるって聞いたにゃ」
ことり「それそれ。動的型はJVMでは使えないんだけど、JavaScriptのコード生成で使うことができます」
凛「今まではJVMで動かしてたんだよね。JavaScriptのコードにするにはどうしたらいいの?」
ことり「Webの開発環境だと、右上のプルダウンでデフォルトだとJVMが選択されてるけど、そこでJavaScriptを選べばOKだよ」

ことり「dynamicが動的型の指定。この変数にはどんな値でも入ります」
凛「Anyみたいだね」
ことり「逆に、どんな型の変数にも代入できます」
凛「むむ、元はIntのはずがStringに代入できてるにゃ」
ことり「さらに、Nullチェックが行われなくなります。要は、Kotlinの型チェックシステムを全部無効化しちゃうの」
凛「もう何でもありなんだね」
ことり「そして、dynamic型の変数に対しては、どんな関数やプロパティでも呼び出せます。たとえ実装されていなくても」
凛「え?」
ことり「JavaScriptってプロトタイプベースだから、どんな型にも自由にメソッドやプロパティを生やせるんだけど、それに対応するためかな」
凛「どういうこと?」
ことり「Kotlinからは見えない、外部のJSライブラリとかでメソッドやプロパティが追加されていた場合、この仕組みがあればそれを利用できるよね」
凛「KotlinじゃなくてJavaScriptで実装された処理を呼び出すためってことかな?」
ことり「うん、多分・・・多分」
凛「あ、ことりちゃんもちょっと怪しそうにゃ」

ことり「動的型への呼び出しは、全部戻り値がdynamicになります。だから、nico.sing().dance().study()・・・みたいに繋げて書いていくことができます」
凛「あ、これ凛の好きなやつー!」
ことり「あとはラムダ式を使う場合。パラメータの型はdynamicになります」

ことり「このsongdynamicです」


ことり「というわけで、この連載もおしまいです」
凛「もしかして、凛たちμ'sが担当するのもこれで一区切り?」
ことり「そうだね。きっと今頃、浦女では次の企画会議でもやってるんじゃないかなぁ」
凛「達成感と寂しさと、両方あるにゃ」
ことり「大丈夫、これで終わりとは限らないよ」
凛「ま~た会お~う 呼んでくれるか~い 僕~た~ち~の~こと~♪」
ことり「それではお相手は南ことりと♪」
凛「星空凛でしたーっ!」


ダイヤ「それでは私たちが担当する連載について・・・」
マル「オラはSQLとかやってみたいずら」
ルビィ「C#とか、大変かなぁ・・・」
曜「関数型やってみたくない?コンパクトなところでSchemeとか」
千歌「カエル!」
鞠莉「ペンギン!」
善子「シーラカンスよ! それとっ!」
善子「←善子じゃなくてヨハネよっ!」
果南「千歌と鞠莉と善子はいつまでそれ続ける気だよっ!」
梨子「・・・果南ちゃん、胃薬要る?」
果南「ああ、ありがと・・・梨子も飲んだ方が」
梨子「うん、もう飲んだ・・・はぁ」
ダイヤ「ああもう、いい加減になさーーいっ!!」


LINEで送る
Pocket


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です