ADA'yı kullanırken şüphem var.Adadaki diğerlerine anahtar kelime atama
others := (others := -1)
Bu ifade geçerli bir tanedir. Geçersiz ise neden geçersiz?
ADA'yı kullanırken şüphem var.Adadaki diğerlerine anahtar kelime atama
others := (others := -1)
Bu ifade geçerli bir tanedir. Geçersiz ise neden geçersiz?
others := (others := -1)
Hayır, geçerli değil. Bu bir sözdizimi hatasıdır (bunu derleyerek öğrenmiş olabilirsiniz).
olması gerekenin söylemek zor, ama bu geçerlidir:
procedure Foo is
A: array(1 .. 10) of Integer;
begin
A := (others => 42);
end Foo;
Ve böylece şudur:
procedure Foo is
A2: array(1 .. 10, 1 .. 10) of Integer;
begin
A2 := (others => (others => 42));
end Foo;
ikinci hem olayları varsayarak, Yazdığınız en yakın görünüyor others
'un anahtar kelimesi olması amaçlanmıştır. Kod snippet'inizdeki ana hatalar şunlardır: (a) 'u :=
yerine kullanmanız gerekir, ve (b) bu değişiklikle bile, snippet kendi başına geçerli değildir; bağlam gerektiriyor.
Her şeyden önce, others
ayrılmış Ada anahtar kelimesidir, bu nedenle değişken adı olarak kullanamazsınız. Diğerlerinin anahtar sözcüğü, seçenekler listesinde kalan seçenekleri tanımlar.
bu istenmeyen bir hata varsayalım ve ne yapmak gerekiyordu şey gibidir:
other := (other := -1)
Bu işe yaramaz, atama operatörü böylece other := -1
bir değer dolayısıyla değil, bir değer olamaz dönmez atanacak. Öte yandan
other := (other = false);
ardından değişkene atanan bir boolean değer döndürür =
karşılaştırma operatörü, diğer.
Bunun ne anlama geldiğini düşünüyorsunuz? Ne yapmaya çalışıyorsun? –