vector3メソッドコールでのポインターの管理
vector3 structのメソッド呼び出しをチェーンしようとしている間、値のアドレスを取得し、ポインターメソッドの呼び出しに関連するエラーに遭遇する場合があります。この記事では、これらのエラーを検討し、それらに対処する方法についてガイドします。ポインターレシーバーを使用すると、メソッドが元の構造体を変更できますが、値レシーバーはメソッド内で局所的に構造体のコピーを作成します。 dir:= projected.minus(c.origin).normalize()を呼び出すと、Projected.minus(c.origin)の返品値のアドレスを取得しようとしています。これは値です。これはGOでは許可されていないため、エラーが許可されていません。 Variable。ただし、メソッドがstructを変更する必要がある場合、これは実行不可能な場合があります。これにより、返されたポインターがポインターベースのメソッドのレシーバーとして直接機能するため、アドレスを取得する必要性が排除されます。構造体内の受信機と結果タイプの一貫性。 Vector3のほとんどの方法にポインターレシーバーがある場合は、すべての受信機をポインターとして保持します。同様に、
パフォーマンスに関する考慮事項
を使用して、float64値のみで構成されるvector3を使用して、ポインターと値レシーバーのパフォーマンスの違いは無視できます。ただし、一貫性を目指して、構造体内の受信機の種類の混合を避けないでください。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3