Administración de punteros en las llamadas del método Vector3
mientras intenta encadenar las llamadas de método en la estructura Vector3, puede encontrar errores relacionados con la dirección de los valores y llamar a los métodos de Pointer. Este artículo examina estos errores y lo guía sobre cómo abordarlos.
comprensión de receptores de puntero y valor
en Go puede tener receptores de puntero o valor. Un receptor de puntero permite que el método modifique la estructura original, mientras que un receptor de valor crea una copia de la estructura localmente dentro del método.
origen de los errores
en su ejemplo, vector3.normalize () tiene un pointer, lo que significa que necesita un puntero a una variable vectorial a la vecina 3. Al llamar a Dir: = Projected.Minus (C.origin) .normalize (), está tratando de tomar la dirección del valor de retorno de proyectado.minus (c.origin), que es un valor. Esto no está permitido en Go, de ahí el error.
shoTarounds
para resolver esto, tiene varias opciones:
consideraciones de rendimiento
con vector3 que consiste solo en valores Float64, las diferencias de rendimiento entre el puntero y los receptores de valor pueden ser insignificantes. Sin embargo, se esfuerce por la consistencia y evite mezclar los tipos de receptores dentro de la estructura.Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3