Javaでは、基準となる(元のクラスタイプ以外の)複合タイプは、この方法で変更された後に、オブジェクトのメソッド内の値のうちであること、残る、参照によって渡されます。元の型を渡すことなどINT、ダブル、プリミティブ型としての値です。
Javaコード:
パブリッククラスのテスト{ 静的クラス頂点{ 公共の二重X。 公共ダブルY; } 静的ダブルABS(頂点v){ リターンMath.sqrt(VX * VX + VY * VY)。 } 静的ボイドスケール(頂点v、ダブルF){ VX = VX * F。 VY = VY * F; } パブリック静的無効メイン(文字列[] args){ 頂点の頂点=新しい頂点()。 vertex.x = 3。 vertex.y = 4。 System.out.println(ABS(頂点))。// 5 スケール(頂点、10)。 System.out.println(ABS(頂点))。// 50 } }
ゴーでは、本方法の構造は、デフォルト値が渡され、即ち、操作の元の値のコピーは、元の値を変更しません。* Tとの意図した受信者ならば、受信者によって指定された値を変更することが可能です。この方法は、多くの場合、その受信機を変更する必要があるため、受信機は、より一般的に、レシピエントポインタの比です。
ゴーコード:
メインパッケージ インポート( "FMT" "数学" ) {頂点構造体を入力 X、Yのfloat64 } (頂点v)のFUNC ABS()のfloat64 { リターンmath.Sqrt(のvX *のvX + VY * VY) } FUNC(V *頂点) (のfloat64 F)スケール{ のvX =のvX * F VY = VY * F } FUNCメイン(){ V =頂点{3,4} v.Scale(10) fmt.Println(v.Abs())// 50 }
16行は*削除した場合、出力値はそれは、*が値によって渡されることなく、元の値又は転送のコピーである、5である;プラス*のみ、元の値が変更されます。