AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Neue Sprachfeatures in Delphi?

Ein Thema von Nathan · begonnen am 24. Okt 2018 · letzter Beitrag vom 27. Okt 2018
Antwort Antwort
Seite 1 von 2  1 2      
Schokohase
(Gast)

n/a Beiträge
 
#1

AW: Neue Sprachfeatures in Delphi?

  Alt 25. Okt 2018, 08:37
Ja es gibt viele, die sich das gewünscht haben.

Es gibt auf FB und G++ ja diverse Wunschlisten für neue Features. Dieses stand ganz oben. Aber nur weil viele ein Feature wünschen, ist es noch nicht sinnvoll:
Ein weiteres Feature, dass sich viele wünschen ist die Ersetzung von begin..end mit
Code:
{}
.
Allerdings unterscheiden sich beide Anforderungen doch erheblich. Die Inlines können nachweislich (s.o.) helfen den Code schlanker und übersichtlicher zu halten. (*)

Diese Ersetzung von begin .. end kann dieses (soweit ich das sehe) nicht liefern.

Darum wurden wohl auch die Inlines realisiert (es gibt einen konkreten Nutzen ohne den alten Code zu brechen) und die {} eben nicht.

(*) Ja, mit einem Hammer kann man ganz toll Nägel in die Wand kloppen oder sich lebensgefährlich verletzen. Ist der Hammer also jetzt nützlich oder gefährlich?

Geändert von Schokohase (25. Okt 2018 um 08:39 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.662 Beiträge
 
Delphi 12 Athens
 
#2

AW: Neue Sprachfeatures in Delphi?

  Alt 25. Okt 2018, 08:42
Zumindest kann man mit einer Inline-Variablendeklaration auch eine lokale Variable initialisieren (muss dann noch nicht mal eine Konstante sein!). Das geht bisher so jedenfalls nicht ohne mindestens eine zusätzliche Zeile Code.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.877 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Neue Sprachfeatures in Delphi?

  Alt 25. Okt 2018, 08:50
Die Initialisierung bei der Deklaraion und die Verwendung von scoped Variablen für Schleifen ist positiv.
Aber die freie Dekalarationsmöglichkeit im Text (anstatt in der Var-Sektion) finde ich eher negativ.
Markus Kinzler
  Mit Zitat antworten Zitat
Frickler
Online

Registriert seit: 6. Mär 2007
Ort: Osnabrück
627 Beiträge
 
Delphi XE6 Enterprise
 
#4

AW: Neue Sprachfeatures in Delphi?

  Alt 25. Okt 2018, 10:53
Zumindest kann man mit einer Inline-Variablendeklaration auch eine lokale Variable initialisieren (muss dann noch nicht mal eine Konstante sein!). Das geht bisher so jedenfalls nicht ohne mindestens eine zusätzliche Zeile Code.
Sehe ich das aber richtig, dass das nicht so geht (wie bei globalen Variablen):
Delphi-Quellcode:
procedure Bla;
var x: integer = 3;
begin
  ...
end;
sondern halt so:
Delphi-Quellcode:
procedure Bla;
begin
  var x: integer := 3;
  ...
end;
...also noch ne neue Süntacks?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.662 Beiträge
 
Delphi 12 Athens
 
#5

AW: Neue Sprachfeatures in Delphi?

  Alt 25. Okt 2018, 10:56
...also noch ne neue Süntacks?
Genau darum geht es in diesem Thread ja.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Frickler
Online

Registriert seit: 6. Mär 2007
Ort: Osnabrück
627 Beiträge
 
Delphi XE6 Enterprise
 
#6

AW: Neue Sprachfeatures in Delphi?

  Alt 25. Okt 2018, 11:28
Endlich eine handliche Ablösung für "with":
Statt
Delphi-Quellcode:
var cds: TClientDataSet; qry: TUniQuery;
begin
  cds := Datamodule.cds_Report;
  qry := Datamodule.qry_Sales;
  // ...viel Text...
  cds.FieldByName('bla').AsString := qry.FieldByName('bla').AsString;
schreiben wir jetzt
Delphi-Quellcode:
// ...viel Text...
begin
  var cds := Datamodule.cds_Report;
  var qry := Datamodule.qry_Sales;
  cds.FieldByName('bla').AsString := qry.FieldByName('bla').AsString;
  ...
end;

P.S.: ja, man kann auch
Datamodule.cds_Report.FieldByName('bla').AsString := Datamodule.qry_Sales.FieldByName('bla').AsString; schreiben. Breitbildschirm sei dank. Aber es gibt auch tiefer verschachtelte Fälle, und irgendwann wirds ziemlich unübersichtlich.
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.284 Beiträge
 
Delphi 12 Athens
 
#7

AW: Neue Sprachfeatures in Delphi?

  Alt 25. Okt 2018, 11:32
Wenn mans genau nimmt würde der var -Block zwischen procedure und begin nunmehr beinahe obsolete. Das kann doch nicht im Sinne des Erfinders sein.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Frickler
Online

Registriert seit: 6. Mär 2007
Ort: Osnabrück
627 Beiträge
 
Delphi XE6 Enterprise
 
#8

AW: Neue Sprachfeatures in Delphi?

  Alt 25. Okt 2018, 11:43
Wenn mans genau nimmt würde der var -Block zwischen procedure und begin nunmehr beinahe obsolete. Das kann doch nicht im Sinne des Erfinders sein.
Wenn sie auf Zack sind, ist es "deprecated" mit (abschaltbarer) Compilerwarnung.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.355 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Neue Sprachfeatures in Delphi?

  Alt 25. Okt 2018, 11:54
Ich finde die Ideen gut und hilfreich.

Variablen dort zu deklarieren, wo sie gebraucht werden, finde ich sinnvoll.
Wer will, kann sie ja direkt am Prozerduranfang deklarieren (oder optional vor dem "begin").

Auch einfach einen Alias für längere Variablennamen oder Member (var C = x.y.z.a.b.c definieren zu können, finde ich gut.

Beides habe ich auch für meine Scriptsprache vorgesehen, an der ich bastle.

Ich finde das nicht kryptisch sondern übersichtlich.
Wichtig ist, dass Variablen vor der Verwendung deklariert werden müssen.


@Codehunter

Das Problem mit dem Scope von Inline-Prozeduren hat man ja jetzt auch schon. Nur die Verwendung von I in Schleifen wird jetzt halt abgelehnt.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.284 Beiträge
 
Delphi 12 Athens
 
#10

AW: Neue Sprachfeatures in Delphi?

  Alt 25. Okt 2018, 11:24
Sehe ich das aber richtig, dass das nicht so geht (wie bei globalen Variablen):
Delphi-Quellcode:
procedure Bla;
var x: integer = 3;
begin
  ...
end;
sondern halt so:
Delphi-Quellcode:
procedure Bla;
begin
  var x: integer := 3;
  ...
end;
...also noch ne neue Süntacks?
Woooha... Ich seh vor meinem geistigen Auge schon sowas:
Delphi-Quellcode:
function Produce: Integer;
var
  I: Integer;

  procedure SubProduce;
  var
    I: Integer;

    procedure SubSubProduce;
    begin
      for var I: Integer = 0 to 3 do begin
        // Irgendwas
      end;
      Inc(I, 17);
    end;

  begin
    Inc(I, 22);
  end;

begin
  Inc(I, 1234);
  Result := I;
end;
Bei so viel Scope braucht man bald ein Periscope
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden

Geändert von Codehunter (25. Okt 2018 um 11:26 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz