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
Una macro y una función en línea son efectivamente cosas diferentes. Pero no me refiero a eso. Este es un ejemplo en el que los valores de los argumentos son desconocidos en tiempo de compilación
En el primer caso, hay que pegar el código en la función actual (supongo) y en el segundo caso, se llama a la función con parámetros pasados por la pila (supongo). Pero a efectos de optimización, el compilador puede implementar también la segunda variante mediante sustitución. ¿Es así? No lo sé. Por eso he preguntado.
El objeto elipse sólo se resalta con el ratón si se hace clic en los puntos de anclaje.
¿Es un error o una característica? Su aplicación es muy inconveniente.
Это что, юмор такой чёрный?
1. Извини, - бред. Я понимаю, тут паранойя в моде, и является ломовым аргументом за "почему так не надо делать". Никакой опасности не вижу в упор. Смотрел внимательно, если чё. Любое имя, в конечном счёте есть ссылка. Индексация есть обычное расширение понятия имени. Не более. Давай запретим присваивание вообще. В целях безопасности. Ссылки же крайне опасны так?
2. Духу объектно-ориентированного программирования, при такой логике, яростно противоречат С++, С#, Делфи, пара дюжин менее популярных языков, в которых индексаторы совершенно нормально работают и справа и слева. Причём здравому смыслу и моему духу это почему-то не противоречит.
Индексаторы делаются для связи с внешней средой. Их функция именно интерфейсная. Я могу инкапсулировать и прятать что угодно, но индексы мне нужны для оперирования объектами как массивами. Фактически все массивы как-то устроены. Например обычные динамические массивы mql. Может запретим их слева от оператора присваивания ставить? Заменим функцией какой-нибудь типа SetArrayValue(array, i, j, value); Заодно и в читабельности выиграем. Да и отладка станет куда проще. Мля. Уф..
3. А как насчёт того, чтоб сделать нормальный индексатор? Горничная это конечно классно, но королева всё-таки лучше.
4. Вот в этом месте у меня крыша конкретно начала ехать. Это что, нечитабельно??
Вот это читабельнее, да?
t.setDataElement(i, i*i);
Круто. Пожалуй пойду лечиться.
5. Ваще круто.
6. Я плакаль.
e(array, i, j, value); Esto también mejorará la legibilidad. Y la depuración también será mucho más fácil. Mierda. Ugh...
Bueno, un colocador tiene la ventaja de que puede hacer algo más que una simple ecuación.
Por ejemplo, puede registrar información, convertir datos (si hablamos de cadenas o datos más complejos), enviar mensajes a otros objetos si ocurre algo importante (como actualizar datos).
¿Cómo sabrá su objeto que la fecha ha cambiado? Al parecer, va a almacenar citas...
Ah, sí, es un falso problema, porque su objeto es más bien una estructura y no gestiona realmente nada.
Todo se hace en otra clase basura, que maneja todo o peor aún, todo pasa en onStart(), onTick(), ... ¡! :)
Que tenga un buen día
3. ¿qué tal hacer un indexador normal? maid es genial, pero queen es mejor.
Junta Muti. Sin embargo, comparado con un lvalor normal, será mucho más caro en términos de tiempo. Pero tendrá el aspecto que usted necesita.
______
Ah, diablos, no. Entonces se necesita una sobrecarga del operador de tipo fantasma. Lástima.
Bueno, la ventaja del fijador es que puedes hacer algo más que una simple ecuación.
Por ejemplo, puede registrar información, convertir datos (si hablamos de cadenas o datos más complejos), enviar mensajes a otros objetos si ocurre algo importante (como actualizar datos).
¿Cómo sabrá su objeto que la fecha ha cambiado? Al parecer, va a almacenar citas...
Oh sí, es un falso problema, porque su objeto es más bien struct y no controla realmente nada.
Todo se hace en otra clase basura, que maneja todo o peor aún, todo pasa en onStart(), onTick(), ... ¡! :)
Que tenga un buen día
La cuestión es que el indexador es lo mismo que el establecedor en términos de características . Se implementa exactamente igual que una función, cuyo contenido puede ser cualquier cosa (el caso típico más sencillo es la comprobación de los límites del array y el manejo de otros errores), y no sólo devuelve una referencia a un elemento del array.
Que tengas un buen día también.
(Perdón por el tono de ayer, estaba un poco al límite, problemas en el trabajo. No tienes nada que ver con eso. Bueno, a menos que estés siendo demasiado categórico :)
Junta Muti. Sin embargo, comparado con un lvalor normal, será mucho más caro en términos de tiempo. Pero tendrá el aspecto que usted necesita.
______
Ah, diablos, no. En ese caso, hay que sobrecargar el operador de conversión de tipos. Qué pena.
En realidad, creo que lo harán. Hay un fallo obvio con las devoluciones de referencia en el lenguaje.
No hay que hacer variables de referencia, pero el retorno de valores l de las funciones es sagrado... :)
No creo que no se pueda resolver en principio - el lenguaje tiene mql-arrays habituales y se sienten muy bien a ambos lados del operador de asignación. ¡Pero son clases C++ por implementación !
Aquí hay otro ejemplo de la misma serie. Este código compila pero no funciona.
Mi punto no es que no deban compilar, mi punto es que deben funcionar. :)
...
No digo que no deba compilar, digo que debe funcionar... :)
MQL5 tiene una maravillosa constante IS_DEBUG_MODE que pertenece al grupo de otras constantes. ¿Podemos añadir dicha constante para un probador? Algo como IS_TESTER_MODE...
MQL5 tiene una maravillosa constante IS_DEBUG_MODE que pertenece al grupo de otras constantes. ¿Podemos añadir dicha constante para un probador? Algo como IS_TESTER_MODE...
¿No funcionarán estas constantes?
ENUM_MQL5_INFO_INTEGER
Identificador
Descripción
Tipo de propiedad
MQL5_PROGRAM_TYPE
Tipo de programa mql5
ENUM_PROGRAM_TYPE
MQL5_DLLS_ALLOWED
Permiso para utilizar la DLL para elprograma actual que se está ejecutando
bool
MQL5_TRADE_ALLOWED
Permisopara comerciar con este programa en marcha
bool
MQL5_DEBUGGING
Señal de que un programa en ejecución funciona en modo de depuración
bool
MQL5_TESTING
Signo de ejecución de un programa en el probador
bool
MQL5_OPTIMIZACIÓN
Señal de ejecución de un programa durante la optimización
bool
MQL5_VISUAL_MODE
Signo de ejecución de un programa en modo de prueba visual
bool