build/extracted-examples/guides/hack/12-generics/01-introduction/swap.hack (20 lines of code) (raw):
// WARNING: Contains some auto-generated boilerplate code, see:
// HHVM\UserDocumentation\MarkdownExt\ExtractedCodeBlocks\FilterBase::addBoilerplate
namespace HHVM\UserDocumentation\Guides\Hack\Generics\Introduction\Swap;
function swap<T>(inout T $i1, inout T $i2): void {
$temp = $i1;
$i1 = $i2;
$i2 = $temp;
}
<<__EntryPoint>>
function main(): void {
\init_docs_autoloader();
$v1 = -10;
$v2 = 123;
echo "\$v1 = ".$v1.", \$v2 = ".$v2."\n";
swap(inout $v1, inout $v2);
echo "\$v1 = ".$v1.", \$v2 = ".$v2."\n";
$v3 = "red";
$v4 = "purple";
echo "\$v3 = ".$v3.", \$v4 = ".$v4."\n";
swap(inout $v3, inout $v4);
echo "\$v3 = ".$v3.", \$v4 = ".$v4."\n";
}