Perlテックブログ

ITエンジニアの成長意欲を刺激する技術考察、モジュール開発の日記。Perlイベントや国内や海外のPerlの記事の紹介。

オートボクシングの実装 - SPVM開発日記

数値から文字列への自動変換ができるようになった。

変数展開は、"aaa$foo->{x}bbb"や"aaa$foo->[0]bbb"を解析するのが難しすぎて、頓挫しちゃった。こっちはあきらめる。

オートボクシングとオートアンボクシング

今日からは、オートボクシングとオートアンボクシングの実装を始めていく。

オートボクシングというのは、自動的なboxingのことで、数値を数値オブジェクトに自動で変換することをいう。

オートアンボクシングはその反対で、数値オブジェクトを数値に自動で変換する。

# オートボクシング
my $int_obj : SPVM::Int = 3;

# オートアンボクシング
my $int  : int = SPVM::Int->new;

これを実装すると、リストやprintfが簡単に書けるようになる。

# リストの例
my $num = 3;
$list->push($num);

my $index = 0;
my $num2 = (int)$list->get($index);

# printfの例
printf("foo %d %f", [(object)3, 0.25 ]);