Ich habe Zweifel an der Verwendung von ADA.Zuweisen von Werten zum Others-Schlüsselwort in Ada
others := (others := -1)
Ist diese Aussage gültig? Wenn es ungültig ist, warum ist es ungültig?
Ich habe Zweifel an der Verwendung von ADA.Zuweisen von Werten zum Others-Schlüsselwort in Ada
others := (others := -1)
Ist diese Aussage gültig? Wenn es ungültig ist, warum ist es ungültig?
others := (others := -1)
Nein, das ist nicht gültig. Es ist ein Syntaxfehler (den Sie durch Kompilieren herausfinden könnten).
Es ist schwer zu sagen, was es sein soll ist, aber das ist gültig:
procedure Foo is
A: array(1 .. 10) of Integer;
begin
A := (others => 42);
end Foo;
Und so ist dies:
procedure Foo is
A2: array(1 .. 10, 1 .. 10) of Integer;
begin
A2 := (others => (others => 42));
end Foo;
Die zweite scheint am nächsten, was Sie geschrieben haben, auf beide Versionen unter der Annahme, von others
sollen das Schlüsselwort sein. Die Hauptfehler in Ihrem Code-Snippet sind, dass (a) Sie =>
anstelle von :=
verwenden müssen, und (b) selbst mit dieser Änderung ist das Snippet für sich nicht gültig; Es braucht Kontext.
Zunächst ist others
ein reserviertes Ada-Schlüsselwort, daher können Sie es nicht als Variablennamen verwenden. Das Schlüsselwort "Andere" definiert die verbleibenden Optionen in einer Liste von Optionen.
Angenommen, das ist ein unbeabsichtigter Fehler, und etwas Sie tun gemeint ist so etwas wie:
other := (other := -1)
Das wird nicht funktionieren, der Zuweisungsoperator keinen Wert zurückgeben, so other := -1
ist kein Wert somit nicht kann zugewiesen werden.
Auf der anderen Seite aber so etwas wie die folgenden gültigen die Art der anderen ist boolean gegeben:
other := (other = false);
In diesem Fall wird der Vergleichsoperator =
einen Booleschen Wert zurückgibt, die dann an Variablen zugewiesen andere.
Was denkst du könnte es bedeuten? Was versuchst du zu machen? –