サーチ…
前書き
Adaの型の階層では、基本型には論理的に分割不可能な値のセットがあります。これらの型の中には、アクセス型(ポインタ型)とスカラ型があります。スカラ型は、 列挙型 、 文字型 、および数値 型に分類できます 。これらのタイプは、このトピックの主題を構成します。値のセットに加えて、型には後続の "+"などの各スカラーに適用可能な演算のセットがあります。
構文
- タイプ は ...
パラメーター
| 省略記号 | 何 |
|---|---|
| ...(1) | 型名を受け取る |
| ...(2) | delta 、 digits 、 rangeキーワードを使用して型の特性を受け取る |
備考
列挙型およびモジュール型整数を除くすべてのスカラー型定義は、 範囲制約を含むことがあります。
範囲制約は、その型に含める値のセットの下限と上限を指定します。固定小数点型では、範囲を指定することが必須です。これらの型の値は2の小数の倍数、たとえば1/2 5の倍数と理解されます。これらの小数部分が小さくなるほど、使用可能なビットを使用して表現できる範囲のコストで表現がより正確になります。
ビットおよび他の表現項目の所望のSizeような型定義のさらなる態様が与えられてもよい。 Ada 2012は、 Static_Predicateような契約ベースのプログラミングの側面を追加します。
列挙
type Fruit is (Banana, Orange, Pear);
Choice : Fruit := Banana;
文字型は、文字リテラルを含む列挙型です。
type Roman_Numeral is
('I', 'V', 'X', 'L', 'C', 'D', 'M', Unknown);`
Singed Integer
type Grade is range 0 .. 15;
B : Grade := 11;
C : Grade := 8;
Avg : Grade := (B + C) / 2; -- Avg = 9
モジュラー整数
これらは「ビット・バイディング」タイプです。彼らはxorのような論理演算子も持っていて、それらは上限に "折り返し"、再び0になります。
type Bits is mod 2**24;
L : Bits := 2#00001000_01010000_11001100# or 7;
浮動小数点
浮動小数点型は、要求された最小精度を示す(10進)数字によって特徴付けられる。
type Distance is digits 8;
Earth : Distance := 40_075.017;
固定小数点(通常)
固定小数点型の定義では、 デルタと範囲を指定します。これらは、浮動小数点ハードウェアを使用するのではなく、実際の値を2の累乗で表したときの正確な値を近似する必要があることを示しています。
Shoe_Ounce : constant := 2.54 / 64.0;
type Thickness is delta Shoe_Ounce range 0.00 .. 1.00;
Strop : Thickness := 0.1; -- could actually be 0.09375
固定小数点(小数点)
小数点固定小数点型は、通常、会計処理で使用されます。 デルタと小数点以下の桁数の両方によって特徴付けられます。彼らの算術演算は、会計のルールを反映しています。
type Money is delta 0.001 digits 10;
Oil_Price : Money := 56.402;
Loss : Money := 0.002 / 3; -- is 0.000