如何在Ada中声明一个整数负范围为Integer的子类型?

时间:2016-08-18 21:59:26

标签: types ada

如果我想声明一个只有积极的Integer类型,我需要做的就是:

      subtype Positive is Integer range 0..Integer'Last;

我想我可以应用相同的逻辑来声明这样的负面类型:

      subtype Negative is Integer range Integer'First..1;

然而,在编译时我收到了这个错误:

    attribute "First" may not be used in a subtype mark

为什么我会收到此错误,如何声明只有负数的子类型?

1 个答案:

答案 0 :(得分:3)

你的问题可能是由于某个地方的拼写错误,因为你的确切例子很好:

xs.flatMap( x => Array(upper(x), lower(x)) ).toArray
res3: Array[Byte] = Array(0, -3, 0, -2, 0, -1, 1, 0, 1, 1)

编译:

package SO is
   subtype Negative is Integer range Integer'First..1;
end SO;