Errores, fallos, preguntas - página 1439
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Según mi experiencia, si el programador escribe algo en un array que contiene 10 elementos con índice 20, lo más probable es que haya cometido un error y el programa debería generar un error en lugar de aumentar el tamaño del array, ocultando así una acción cuestionable.
Todas esas "matrices que ajustan el tamaño" son mucho más problemáticas en términos de ocultar posibles errores que de conveniencia. Es más, no tener que llevar la cuenta del tamaño de un array es también una práctica potencialmente peligrosa, que conduce a errores difíciles de solucionar.
¿Soy yo o no has trabajado con las lenguas en cuestión? No es necesario especificar ningún índice para añadirlo: se asigna automáticamente y también se aumenta el tamaño del array. El programador no tiene la posibilidad de equivocarse con el índice durante esta operación.
Puedes implementar un comportamiento similar con clases, añadir las funciones relacionadas pop, shift, unshift, etc. Y arrastra un vagón de clases de código a código, con cada código usando %10...20 funciones de él. ¿Le parece una buena solución? Un ejemplo de solución correcta en mi opinión es añadir a la función ObjectsDeleteAll la capacidad de borrar por prefijo - esto es otra micra hacia la programación de nivel superior - y la mayoría de los codificadores volaron a la papelera de reciclaje así que la función se hizo a sí misma. Por desgracia, difícilmente veremos eso con las matrices...
И таскать телегу классов из кода в код, при том что в каждом коде из неё используются %10..20 функций.
No es necesario escribir clases "smart array", ya están en la biblioteca estándar de MetaQuotes, véase la familia de clases Arry
¿Soy yo, o no has trabajado con las lenguas en cuestión? No es necesario especificar un índice para el elemento añadido, se asigna automáticamente y el tamaño de la matriz también se incrementa. El programador no tiene la posibilidad de equivocarse con el índice durante esta operación
Awwwww... ¿Qué posibilidades tiene el programador de equivocarse? Se equivoca al pensar que puede tener en cuenta todas las variantes de cualquier programa complejo.
Todas esas "acciones por defecto" deben ser propiedades de objetos complejos. Los objetos simples, como las variables, las matrices y las estructuras simples, deben tener el menor número posible de propiedades "por defecto".
Por ejemplo, en la creación - deben almacenar un valor indefinido, no cero.
Se puede implementar un comportamiento similar con clases, añadir funciones relacionadas pop, shift, unshift etc. Y arrastra un vagón de clases de código a código, con cada código usando %10...20 funciones de él. ¿Le parece que esta es la solución adecuada?
Es la solución correcta en términos de lógica. Cuando se trabaja con estas clases, su comportamiento es transparente.
Y qué decir de "arrastrar un carro de clases": cuando se codifica no se arrastra, sólo se conecta la biblioteca. Y al compilar, un enlazador normal no debería poner en un ejecutable todos los métodos de la biblioteca, sino sólo los que se utilizan.
Ejemplo de la solución correcta en mi opinión - añadir a la función ObjectsDeleteAll eliminar por el prefijo - esto es otra micra hacia la programación de nivel superior - y la mayoría de los codificadores han conseguido voló en la basura esta función de creación propia. Por desgracia, es poco probable que esto ocurra con las matrices...
En mi opinión, este es también un enfoque equivocado, por la misma razón. La función está cargada de tareas que no son propias de ella y no siguen la lógica de su aplicación.
La solución correcta, me parece, es tener un gestor de objetos de clase en el gráfico que mantenga una lista de ellos, y elimine los necesarios a medida que se llaman las funciones. Los prefijos de los nombres, me parece, deben servir únicamente para aclarar a una persona alguna información sobre el objeto. Y la eliminación - no debe basarse en el nombre del objeto de ninguna manera, sino en guardar ese nombre en un array.
versión 5.0 build 1150, demo
Actualice su terminal (necesita conectarse al servidor de MetaQuotes-Demo). Construcción actual:
Este es el guión:
Da este resultado:
Actualice su terminal (debe conectarse al servidor de MetaQuotes-Demo). Construcción actual:
Este es el guión:
Da este resultado:
Gracias, ¿sabes por qué la bandera tiene un valor de 0, como si nada ha cambiado