Características da linguagem mql5, subtilezas e técnicas - página 160
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
NULL é uma tal ambiguidade que é preciso lidar com ela com cuidado.
Mais uma vez, uma cadeia de entrada não pode ser NULL (forçada por ""). As outras cordas podem.
Mais uma vez, a cadeia de entrada não pode ser NULL (forçada por ""). As outras cordas podem.
Mais uma vez, a cadeia de entrada não pode ser NULL (forçada por ""). As outras cordas podem.
Mais uma vez, porque acha que não deveria haver uma tal conversão? Os meus conhecimentos e experiência não são suficientes para explicar tudo isto. Por isso, mantenha-se fiel à sua opinião. Espero que os programadores não o alterem.
Mais uma vez, porque acha que não deveria haver tal conversão?
Eu sei exactamente porque é que esta conversão acontece. Estamos aqui a falar de uma característica, não de um insecto.
a entrada é quase sinónimo de const, const deve ser inicializada
NULL é a inicialização. O exemplo mostra propositadamente uma cadeia não-inputada.
É uma boa ideia gerar um aviso em tempo de compilação.
Sim, este comportamento é provavelmente apenas "infalível".
Aparentemente, porque uma variável de entrada deve ser inicializada,= NULL é artificialmente equacionada com =" " quando a variável já ocupa pelo menos um byte na memória.
Na MQL5 as entradas:
São absolutamente idênticos. Não é atribuída nenhuma memória para a variável. De qualquer modo, não encontrei quaisquer diferenças.
Em java, por exemplo, tais registos são ligeiramente diferentes, apesar do facto de não ser atribuída memória para a variável em ambos os casos, também. A primeira variante (String string = null;) será considerada inicializada, embora não seja atribuída memória para a variável e a variável possa ser impressa como vazia. No segundo caso (String string;) quando se tenta imprimir a variável, será gerado um erro de variável não-inicializada.
Isto é, a MQL5 é mais tolerante a este respeito.
O que é melhor, eu nem sequer sei.
Aparentemente, porque uma variável de entrada deve ser inicializada, o= NULL é artificialmente igualado a ="", quando a variável já ocupa pelo menos um byte na memória.
NULL não é uma inicialização, é um valor. Pode atribuir NULL a qualquer variável de cadeia não-constritiva no meio do código. E será igual ao NULL.
A entrada não é igual a NULL porque no arranque é criado um set-file invisível. A partir deste ficheiro, os valores das variáveis são "analisados" em entradas. A análise não pode sair NULL de qualquer maneira e por isso coloca lá um fio vazio.
Apenas o cordão de entrada tem este comportamento. Para const-string e outros, está bem, claro.NULL não é uma inicialização, mas sim um valor. É possível atribuir qualquer variável de cadeia não-constritiva ao NULL no meio do código. E será igual ao NULL.
A entrada não é igual a NULL porque no arranque é criado um set-file invisível. A partir deste ficheiro, os valores das variáveis são "analisados" em entradas. A análise não dará qualquer resultado NULL e, portanto, colocará aí um fio vazio.
Bem, é a isso que me refiro. Concordo.
A única coisa é que não vale a pena atribuir um valor NULL a uma cadeia na fase de declaração da variável:
Só faz sentido fazer isto para zerar a variável já inicializada na memória.
Bem, é isso que estou a dizer. Concordo.
A única coisa é que não vale a pena atribuir um valor NULL a uma cadeia na fase de declaração da variável:
só faz sentido fazer isto para anular uma variável na memória.
Aqui a inicialização NULL faz sentido.
A inicialização NULL faz aqui sentido.
sim