¿Por qué es que en todas las clases de MATLAB debo usar "esto"? Creo que en C++ no necesito usar "esto", solo si quiero. ¿Es este también el caso en MATLAB?El uso de "esto" en cada clase de MATLAB
Respuesta
En resumen, debe utilizar algún tipo de referencia explícita.
En primer lugar, a diferencia de C++/C#/Java donde es nombrado este, se puede usar cualquier nombre que desee. El motivo por el que debe usar llamadas explícitas es Matlab designers decision. La idea era apoyar las operaciones vectoriales de Matlab en objetos, como si fueran estructuras . El siguiente es un fragmento del foro:
Si bien los idiomas con un parámetro de objeto implícito proporcionan una palabra "this" para acceder al objeto implícito, por lo general no requieren que usted pueda acceder a una propiedad través de "este ". Si MATLAB tiene propiedades implícitas, la extensión lógica de para los objetos basados en matrices sería indexar en nada:
S = S + (k) .Valor;
Editar: Tras el buen comentario de @AndrewJanke, me gustaría añadir que MATLAB podría haber tenido esta referencia implícita, y la única fuerza para usarlo en la indexación de objetos basados en matrices . Sin embargo, este enfoque no fue elegido por los diseñadores de MATLAB.
- 1. Uso de "esto" en el destructor
- 2. longitud Matlab de cada elemento en el arreglo de celdas
- 3. El uso de clases abstractas en Matlab (sin propiedades)
- 4. Usando "esto" con el nombre de clase
- 5. resultado extraño el uso de `` == operador en MATLAB
- 6. Constructor de clase múltiple Matlab
- 7. Uso de clases genéricas de Java en Matlab
- 8. Jquery $() cada método oscurece 'esto' palabra clave
- 9. ¿Cuál es el uso de setupUi (esto) en Qt
- 10. node.js: Uso confuso de 'esto' en el ámbito global
- 11. El uso de "esto" como parámetro para copiar constructor
- 12. ¿Puedo asignar tipos a las propiedades de clase en MATLAB?
- 13. Uso no válido de 'esto' en la función no miembro
- 14. Uso de "Clase" en C#
- 15. ¿Cómo evitar el uso de round() en cada \ Sexpr {}?
- 16. jQuery: el uso directo() con cada uno()
- 17. ¿El uso de bundle exec puede solucionar esto?
- 18. ¿Mato a un gatito cada vez que uso struct en todas partes en lugar de clase?
- 19. Uso de la clase Exception en C#
- 20. ¿Puedo hacer esto con objetos de clase?
- 21. El uso de la memoria Django aumenta con cada solicitud
- 22. ¿Cómo multiplico los elementos en cada columna, por cada columna en una matriz en MATLAB?
- 23. ¿Cómo uso la aproximación de mínimos cuadrados en MATLAB?
- 24. Reemplazar el uso de una clase en un proyecto específico
- 25. ¿Cómo preasignar una matriz de clase en MATLAB?
- 26. Restando el fondo en MATLAB
- 27. Cómo utilizar el procesamiento paralelo en Matlab
- 28. ¿Cómo uso el mixin Enumerable en mi clase?
- 29. ¿Cómo puedo obtener el objeto de clase para cada clase en un jar
- 30. Matlab - uso de variables del espacio de trabajo
Los métodos de la clase Python no son necesarios para nombrar la referencia de instancia explícita 'self'. También es una convención, como en MATLAB. –
@ AndréCaron, gracias, actualicé mi respuesta. –
Creo que esta lectura pasa por alto el motivo central: envío múltiple, referido oblicuamente con "simetría entre múltiples parámetros de objeto" en el artículo vinculado. P.ej. para un método 'f (A, B, C)', cualquiera de las entradas podría ser el objeto de envío del método, o podrían ser conceptualmente pares, por lo que no está claro a priori que se convierta en 'this'. Incluso podría llamarse 'f (2, 3, X)'. La preocupación de indexación podría resolverse teniendo un parámetro 'this' implícito y solo requiriendo que lo use cuando estaba usando'() '-indexing dentro del método, como en C++ si llama a un' (] 'sobrecargado. (Creo). –