我通过修复错误和阅读代码来学习Ada.我注意到一些if语句与"and"结合,其他语句与"然后"结合.类似地,有"或"和其他地方有"或其他".一位同事说这只是语法糖并没有区别.我想知道他是对的吗?
我继承了这段代码,无法弄清楚它的作用.定义看起来很简单:
result : BOOLEAN ;
LOOKUP_TABLE : array
( BOOLEAN, BOOLEAN, BOOLEAN, BOOLEAN, BOOLEAN, BOOLEAN, BOOLEAN, BOOLEAN,
BOOLEAN, BOOLEAN, BOOLEAN, BOOLEAN, BOOLEAN, BOOLEAN, BOOLEAN, BOOLEAN ) of
BOOLEAN := (others => (others => (others => (others => (others => (others => (others => (others =>
(others => (others => (others => (others => (others => (others => (others => (others =>
TRUE ))))))))))))))));
Run Code Online (Sandbox Code Playgroud)
在体内,使用如下:
result := LOOKUP_TABLE(TRUE, FALSE, TRUE, TRUE, FALSE, TRUE, TRUE, FALSE,
FALSE, TRUE, TRUE, FALSE, FALSE, FALSE, …Run Code Online (Sandbox Code Playgroud) 我需要一个包含一组"泛型"对象的数组,其中数组中的每个元素可能具有相同的泛型类型,或者是不同的.我能解决这个问题的唯一方法是使通用对象具有基类,并且该数组用于一组基类对象.
class abstract absgentype { }
class gentype<T> : absgentype
{
T value;
...
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,糟糕的副作用是,当我看数组的内容,我必须使用强制要回实际的对象,我必须知道泛型类型做演员的类型.
有没有办法构建一个容器,可以包含具有不同泛型类型的泛型的多个对象?理想情况下我想做:
var p = genarray[0]; // type of p is whatever type was put into array
Run Code Online (Sandbox Code Playgroud)
我不想使用类型对象或动态,因为我失去了静态类型...