2016-03-19 8 views

Antwort

1
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.

1

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.

Verwandte Themen