Non sono un guru, ma qui, a mio modesto parere, dichiarare le variabili in un ciclo è un affare ENORME (e non lo è più) !!!
Una cosa è una funzione, anche un pezzo di codice locale, ma loops....
Potrei sbagliarmi ))))))))
Non possibile, ma sicuramente sbagliato. Solo un esempio: Si passa in rassegna le posizioni aperte. Se ottieni un biglietto di posizione, usalo per ottenere altre proprietà di posizione. Ci sono due varianti, o in ogni funzione di ottenere la proprietà della posizione inserire PositionGetTicket(i) o scriverlo in una variabile una volta e usarlo. Ma dopo l'uscita dal ciclo nessuno ha bisogno di questo biglietto... Perché dichiarare questa variabile nel corpo della funzione OnTick() o ancora più interessante a livello globale?
Se questo è un dibattito - voglio chiedere al Guru.
Che è "corretto" (ottimale e leggibile):
Oppure
Se l'ordine di i è indifferente?
Penso che la prima opzione, perché non ci sono variabili extra, non solo usano la memoria, ma per me, ingombrano il codice - leggere di più, ma dipende dalle funzioni che chiamate imho, se la funzione è usata raramente, allora a volte sarà più leggibile, se si dichiara una variabile con un nome nel senso del compito eseguito.... tutto sommato, questo è un problema creativo ))))
ma in generale, non ascoltateli, scrivete come volete - usate la lingua per la vostra convenienza
SZZ: guardate gli esempi da mikrosoft, lo stile per lo più - dichiarazioni in una volta quando si usano le variabili, in pratica si ottiene lo scope locale, ma senza fanatismo ))
void SimpleImage::CalculateDrawingRect()
{
// Load our bitmap if necessaryif (nullptr == m_bitmap)
{
if (FAILED(LoadBitmapFromShellItem()))
{
return;
}
}
// Calculate bitmap rectanglefloat boundingWidth = m_boundingRect.right - m_boundingRect.left;
float b oundingHeight = m_boundingRect.bottom - m_boundingRect.top;
float w idth = Direct2DUtility::GetRectWidth(m_clipRect);
float h eight = Direct2DUtility::GetRectHeight(m_clipRect);
if (!m_isHorizontal)
{
// Swap width and height to calculate boundariesfloat widthTemp = width;
width = height;
height = widthTemp;
}
if (width > boundingWidth)
{
// Width is larger than bounding box. Scale width to fitfloat scale = boundingWidth / width;
width *= scale;
height *= scale;
}
This repo is the official home of .NET on GitHub. It's a great starting point to find many .NET OSS projects from Microsoft and the community, including many that are part of the .NET Foundation.
Ho appena incontrato un gruppo di persone che pensano che il compilatore azzeri le variabili locali proprio come fa con le variabili globali.
E il compilatore non fa alcun warping.
Lo fa, string e print non sono indicatori di lavoro con le variabili
'tst.mq5' tst.mq5 1 1
possibile uso di una variabile non inizializzata 'c' tst.mq5 16 10
possibile uso di una variabile non inizializzata 'e' tst.mq5 20 17
codice generato 1 1
0 errore(i), 2 avviso(i), 526 msec trascorsi 1 3
tempo = 1018
somma = 894782460
tempo = 371
somma = 894782460
Non so perché, ma μl supera fortemente (e le varianti più intricate di rand()).
E per me è ovvio: toglierlo dal giro.
Ho appena incontrato un gruppo di persone che pensano che il compilatore azzeri le variabili locali proprio come fa con le variabili globali.
E il compilatore non dà alcun mandato.
Oppure .... Non lo so. Lo faccio imprecare ad ogni occasione .... ))))))
Oppure .... Non lo so. Giuro così ogni volta che posso.... ))))))
tempo = 1018
somma = 894782460
tempo = 371
somma = 894782460
Non so perché, ma μl è molto più avanti della curva (e delle varianti più intricate di rand()).
E per me è ovvio: toglierlo dal giro.
Non sono un guru, ma qui, a mio modesto parere, dichiarare le variabili in un ciclo è un affare ENORME (e non lo è più) !!!
Una cosa è una funzione, anche un pezzo di codice locale, ma loops....
Potrei sbagliarmi ))))))))
Hai una versione oscena del compilatore)
E ne sono felice ))))))))))) Anche se a volte .... Preferirei che non dicesse nulla )))))))))))))))))))))))))))))))
Se questo è un dibattito - voglio chiedere al Guru.
Che è "corretto" (ottimale e leggibile):
Oppure
Se l'ordine di i è indifferente?
Non sono un guru, ma qui, a mio modesto parere, dichiarare le variabili in un ciclo è un affare ENORME (e non lo è più) !!!
Una cosa è una funzione, anche un pezzo di codice locale, ma loops....
Potrei sbagliarmi ))))))))
Se questo è un dibattito - voglio chiedere al Guru.
Che è "corretto" (ottimale e leggibile):
Oppure
Se l'ordine di i è indifferente?
Penso che la prima opzione, perché non ci sono variabili extra, non solo usano la memoria, ma per me, ingombrano il codice - leggere di più, ma dipende dalle funzioni che chiamate imho, se la funzione è usata raramente, allora a volte sarà più leggibile, se si dichiara una variabile con un nome nel senso del compito eseguito.... tutto sommato, questo è un problema creativo ))))
ma in generale, non ascoltateli, scrivete come volete - usate la lingua per la vostra convenienza
SZZ: guardate gli esempi da mikrosoft, lo stile per lo più - dichiarazioni in una volta quando si usano le variabili, in pratica si ottiene lo scope locale, ma senza fanatismo ))
https://github.com/microsoftSe questo è un dibattito - voglio chiedere al Guru.
Che è "corretto" (ottimale e leggibile):
Oppure
Se l'ordine di i è indifferente?
Se indifferente allora.
int i = Bars();
while(i-- > 0)
{
// code
}
.