2016-03-19 8 views
-1

私はADAの使用に疑念があります。AdaのOthersキーワードに値を割り当てる

others := (others := -1) 

この文は有効ですか?それが無効な理由はなぜ無効ですか?

+0

どういう意味でしょうか?あなたは何をしようとしているのですか? –

答えて

1
others := (others := -1) 

いいえ、無効です。これは構文エラーです(コンパイルによって知ることができます)。

それはすることになっているもの伝えることは困難ですが、これは有効です。

procedure Foo is 
    A: array(1 .. 10) of Integer; 
begin 
    A := (others => 42);  
end Foo; 

だから、これは次のとおりです。

procedure Foo is 
    A2: array(1 .. 10, 1 .. 10) of Integer; 
begin 
    A2 := (others => (others => 42)); 
end Foo; 

第二は、両方の発生を想定し、あなたが書いたものに最も近いと思われますothersはキーワードになります。コードスニペットの主なエラーは、(a):=ではなく=>を使用する必要があります。(b)その変更を行っても、スニペットは単独では有効ではありません。文脈が必要です。

1

まず、othersは予約済みのAdaキーワードなので、変数名として使用することはできません。 `others 'キーワードは、オプションリストの残りのオプションを定義します。

それは意図しない間違いだと仮定して、あなたが何を意図するようなものである:そうother := -1は、このように値ではありません、することはできません。これは動作しません、代入演算子は値を返しません

other := (other := -1) 

割り当てられる。一方

しかし、以下のようなものは、他のタイプの所与有効であることを示すブールである:

この場合
other := (other = false); 

、変数に割り当てられたブール値を返し=比較演算子その他。