差分

ナビゲーションに移動 検索に移動

Hack (プログラミング言語)

949 バイト追加, 2014年3月24日 (月) 11:53
// barbazが表示される
echo $fn('baz');
}
</source>
 
===newtype===
Hackには[[C++]]の[[typedef]]のようなものが搭載されている。
<source lang="php">
newtype RoofRaised = float;
</source>
 
「[[Bjarne Stroustrup インタビュー]]」の一説で、「RoofRaised って何だと思って、長い時間をかけてヘッダーファイルを調べてみたら、ただの double だった、なんてことがよくあったでしょ。大規模なプロジェクトのすべてのクラスで暗黙の typedef を見つけ出すのにどれくらい時間がかかると思う? 」などと馬鹿にされたアレである。
 
一方、Hackのnewtypeは若干良くなっており、既存の型に制約を与えるための物として機能する。
<source lang="php">
<?hh
// email型を宣言
newtype email = string;
 
// 引数mailに渡す値は、email型に明示的にキャストしていないとエラーになる。
function setName(email $mail) : void
{
}
</source>
匿名利用者

案内メニュー