Bonjour
La déclaration inline c'est surement très utile.
Mais pourquoi RIO dit que le code est incorrect alors que la compilation se fait sans problème ?
Bonjour
La déclaration inline c'est surement très utile.
Mais pourquoi RIO dit que le code est incorrect alors que la compilation se fait sans problème ?
Ah, tu as eu la même remarque que moi ! Cette détection de syntaxe n'est pas encore dans l'EDI (c'est un peu )
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
Je m'y étais habitué parce que ce n'est pas le seul truc qui apparaît sans raison valable mais vu que c'est tout nouveau je pensais que ce serait mieux géré au moins pour ça
Ce contrôle syntaxique n'a jamais été top.
ps : tu peux écrire var I := 12;
Et à part rendre le code plus court, est-ce qu'il y a un intérêt majeur à cette nouvelle syntaxe ?
la variable à une portée de bloc, pour un record, cela appelle le destructeur en fin de bloc, tu peux donc faire du RAII et SmartPtr<> en Delphi comme en C++ au lieu d'utiliser du try-finally
Dès que j'ai 10.3, je me presse de le tester
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
je ne suis pas très fan de cet ajout.
l'argument principal que j'ai vu c'est d'avoir la déclaration au plus près du code, mais je pense que les procédures trop longues sont une mauvaise chose.
ensuite il y a des effets de bord qu'on peut exploiter:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 procedure test; var s1: string; // initialisée ici, dans tous les cas begin s1 := 'toto'; if condition then begin var s2 := 'hello'; // initialisé ici, uniquement si la condition est vraie ... end; // s2 est libéré ici, avant la fin de la procédure ... end; // s1 n'est libéré que maintenant
Perso, j'aime beaucoup même si en début de procédure. Déclaration (non-typée la plupart du temps) + initialisation : top
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 procedure test; begin var s1 := 'toto';
Je ne m'en sers que dans les boucles pour éliminer les déclarations de variables temporaires à portée très limitée (et m'économiser aussi la déclaration du type dans certains "for in").
Pour les variables, il faut garder de bonnes pratiques et ne pas déclarer des choses n'importe où dans le code ce qui le rend difficilement maintenance dès que ça fait vraiment quelque chose.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager