我不知道爲什麼有像+=
,-=
,++
,-=
,在阿達<<=
或x ? y : z
(不是增量賦值 ...)沒有運營商?其他許多語言(C,C++,C#,Java,Perl)都有它們。爲什麼Ada中沒有(增強賦值)運算符,如+ =, - =或++?
- 實施例(C/C++/...):
int a = 3;
a += 4; /* A */
// long: a = a + 4
a++; /* B */
// long: a = a + 1
a = (a > 3 ? 10 : 5); /* C */
// long: ' if a > 3 then a = 10 else a = 5'
- 實施例(ADA):
a : integer := 3;
a := a + 4; -- A --
a := a + 1; -- B --
if a > 3 then -- C --
a := 10;
else
a := 5;
end if;
(實施例沒有意義 - 僅用於演示)
是因爲...
- 運算符重載(但C++也有這樣的機制)?
- 可讀性?
- 技術原因/限制?
- 這只是一個把這些表達式縮短而不是編程所需的技巧?
- Ada中的賦值運算符是
:=
而不是=
(所以+=
- >+=:
)?
雖然這個問題似乎在提問和倡導之間劃清界線,但我認爲這是一個合理的問題(甚至有答案,查看理由),所以我不同意接近的決定。對於T.E.D. –
+1。儘管我支持我的回答,但我一直有興趣查看並理解其他觀點 –
+1對於泰德和布萊恩;我也想看到這個問題的其他觀點... – clx