首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Ada中创建包含空数组的数组

可以通过使用泛型来实现。泛型是一种在编程中定义可重用代码的方式,它允许我们在不指定具体类型的情况下编写代码。下面是一个示例代码:

代码语言:txt
复制
generic
   type Element_Type is private;
   type Array_Type is array (Positive range <>) of Element_Type;

package Empty_Array is
   Empty : constant Array_Type(1..0) := (others => <>);
end Empty_Array;

在上面的代码中,我们定义了一个泛型包 Empty_Array,它包含了一个名为 Empty 的常量,类型为 Array_TypeElement_Type 是一个私有类型参数,用于指定数组元素的类型。Array_Type 是一个数组类型参数,它是一个具有正整数范围的数组类型。

通过将 Empty 初始化为 (others => <>),我们创建了一个空数组。这里的 others 表示数组的所有元素,而 <> 表示空数组。

使用这个泛型包,我们可以在程序中实例化一个包含空数组的数组,如下所示:

代码语言:txt
复制
with Empty_Array;

procedure Main is
   package Int_Array is new Empty_Array(Element_Type => Integer);
   package String_Array is new Empty_Array(Element_Type => String);
   
   Int_Arrays : array(1..2) of Int_Array.Array_Type;
   String_Arrays : array(1..3) of String_Array.Array_Type;
begin
   -- 初始化包含空数组的数组
   Int_Arrays(1) := Int_Array.Empty;
   Int_Arrays(2) := Int_Array.Empty;
   
   String_Arrays(1) := String_Array.Empty;
   String_Arrays(2) := String_Array.Empty;
   String_Arrays(3) := String_Array.Empty;
   
   -- 打印数组长度
   for I in Int_Arrays'Range loop
      Put_Line("Int_Arrays(" & Integer'Image(I) & ")'Length = " & Integer'Image(Int_Arrays(I)'Length));
   end loop;
   
   for I in String_Arrays'Range loop
      Put_Line("String_Arrays(" & Integer'Image(I) & ")'Length = " & Integer'Image(String_Arrays(I)'Length));
   end loop;
end Main;

在上面的代码中,我们实例化了两个不同类型的包含空数组的数组:Int_ArraysString_Arrays。然后,我们使用 Int_Arrays'LengthString_Arrays'Length 打印了数组的长度。

这是一个简单的示例,演示了如何在Ada中创建包含空数组的数组。根据实际需求,你可以根据需要定义更多的泛型包和实例化数组。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JavaScript数组创建

同时你也应该尽可能不去操作稀疏数组一个数组字面量删除或是添加元素时你可能会在不经意间创建一个稀疏数组。因此修改之后切记仔细检查。...一个长度为 3稀疏数组 items被创建了,但实际上它并不包含任何元素而只是有几个slot。 这种创建数组方式本身并没有什么价值。...让我使用 fill()方法来创建一个包含5个0数组JS Bin查看 let zeros = new Array(5).fill(0); zeros; // => [0, 0, 0, 0, 0]...像上边例子一样,让我们创建一个包含5个0数组JS Bin查看 let zeros = Array.from(new Array(5), () => 0); zeros; // => [0,...让我们创建一个包含 1到 5数组JS Bin查看 let items = Array.from(new Array(5), (item, index) => index + 1); items

3.4K10

js如何判断数组包含某个特定值_js数组是否包含某个值

array.indexOf 判断数组是否存在某个值,如果存在返回数组元素下标,否则返回-1 let arr = ['something', 'anything', 'nothing',...anything']; let index = arr.indexOf('nothing'); # 结果:2 array.includes(searchElement[, fromIndex]) 判断一个数组是否包含一个指定值...numbers.includes(8); # 结果: true result = numbers.includes(118); # 结果: false array.find(callback[, thisArg]) 返回数组满足条件第一个元素值...item.id == 3; }); # 结果: Object { id: 3, name: "nothing" } array.findIndex(callback[, thisArg]) 返回数组满足条件第一个元素索引...方法,该方法返回元素在数组下标,如果不存在与数组,那么返回-1; 参数:searchElement 需要查找元素值。

18.4K40

js判断数组是否包含某个指定元素个数_js 数组包含某个元素

Mango","Banana","Orange","Apple"]; var a = fruits.indexOf("Apple",4); // 6 注:string.indexOf()返回某个指定字符串值字符串首次出现位置...find() 方法为数组每个元素都调用一次函数执行: 当数组元素测试条件时返回 true 时, find() 返回符合条件元素,之后值不会再调用执行函数。...如果没有符合条件元素返回 undefined 注意: find() 对于数组,函数是不会执行。 注意: find() 并没有改变数组原始值。...findIndex() 方法为数组每个元素都调用一次函数执行: 当数组元素测试条件时返回 true 时, findIndex() 返回符合条件元素索引位置,之后值不会再调用执行函数。...如果没有符合条件元素返回 -1注意: findIndex() 对于数组,函数是不会执行

11.1K30

Java如何高效判断数组是否包含某个元素

这是一个Java中经常用到并且非常有用操作。同时,这个问题在Stack Overflow也是一个非常热门问题。...投票比较高几个答案给出了几种不同方法,但是他们时间复杂度也是各不相同。本文将分析几种常见用法及其时间成本。...查找有序数组是否包含某个值用法如下: public static boolean useArraysBinarySearch(String[] arr, String targetValue) {...实际上,如果你需要借助数组或者集合类高效地检查数组是否包含特定值,一个已排序列表或树可以做到时间复杂度为O(log(n)),hashset可以达到O(1)。...,他判断一个元素是否包含数组其实也是使用循环判断方式。

5.1K10

用numpy如何创建一个数组

导读 最近在用numpy过程,总会不自觉需要创建数组,虽然这并不是一个明智做法,但终究是可能存在这种需求。本文简单记录3种用numpy生成数组方式。 ?...我们目标是创建一个指定列数、但空无一行数组。...---- 02 利用列表创建 初始化numpy数组一种方式是由列表创建,那么当我们传入列表是列表时即可创建数组。...---- 03 利用pandas转换生成 numpy和pandas是一对好搭档,常常需要对二者数据进行转换,创建数组时自然也可以。...为了创建一个数组,我们可以首先考虑先创建一个DataFrame,然后由其转换为numpy对象即实现了创建数组。 首先,我们创建一个仅有列名、而没有索引和值DataFrame: ?

9.2K10

JavaScript 判断对象、数组方法

空字符串 String [] false false 数组 Array {} false false 对象 Object 从表格,我们可以看出想要判断是不是null, undefined...二、判定数组方法 分析:所谓数组,就是数组长度等于0。所以我们难点就落在了怎么判断一个参数数据类型是数组了。 我们可以通过isPrototypeOf()方法实现。...(obj) && Object.keys(obj).length === 0 其中,Object.keys()方法会返回一个由给定对象自身可枚举属性组成数组数组属性名排列顺序和使用 for.....中一切皆是对象,也就是说,Object 也存在于数组原型链上,因此封装校验方法时,数组需要先于对象检验。...表达式 obj instanceof AFunction ,检测是 AFunction.prototype 是否obj 原型链,而不是检测 AFunction 自身。

28.4K42

IOS数组处理

某些情况下,后台可能由于各种原因,对某个字段返回了null值,这时我们取到就是[NSNull null]这样一个对象,再比如说,后台可能对某一个数据取值,但取到了0个,这时返回是一个组,我们取到就是...NSNull是一个特殊类,它和nil一样,也代表值,但二者有区别,NSNull不接收NSArray那些方法,它只有一个类方法: 因此判断数组是否为,需要对各种情况都进行判断。...= 0) 这样就确保了数组不是nil对象,也不是NSNull对象,并且至少有一个元素。...其次保证数组至少包含有一个元素。...NullSafe思路:在运行时操作,把这个讨厌值置为nil,而nil是安全,可以向nil对象发送任何message而不会奔溃。

3.4K90

js删除数组一个元素_js数组包含某个元素

删除最后一个元素 pop 删除 slice 删除 splice 删除 for 删除 length 删除 第二种: 删除第一个元素 shift 删除 slice 删除 splice 删除 第三种:删除数组某个指定下标的元素...splice 删除 for 删除 第四种:删除数组某个指定元素元素 splice 删除 filter 删除 forEach、map、for 删除 Set 删除 ---- 第一种:删除最后一个元素...splice 删除 var arr = [1,2,3,4,5]var new_arr = arr.splice(0, 1)// arr => [2,3,4,5]// new_arr => [1] 第三种:删除数组某个指定下标的元素...不可以使用 delete 方式删除数组某个元素,此操作会造成稀疏数组,被删除元素为位置依然存在为empty,且数组长度不变 2....不可以使用 forEach 方法比对数组下标值,因为 forEach 循环时候是无序 第四种:删除数组某个指定元素元素 splice 删除 var element = 2, arr =

11.7K40

怎样JavaScript创建和填充任意长度数组

没有空洞数组往往表现得更好 大多数编程语言中,数组是连续值序列。 JavaScript ,Array 是一个将索引映射到元素字典。...某些引擎,例如V8,如果切换到性能较低数据结构,这种改变将会是永久性。即使所有空洞都被填补,它们也不会再切换回来了。...关于 V8 是如何表示数组,请参阅Mathias Bynens文章“V8元素类型”【https://v8.dev/blog/elements-kinds】。...Array 对象,其中只包含空洞。...我侧重点是可读性,而不是性能。 你是否需要创建一个数组,以后将会完全填充? 1new Array(LEN) 你需要创建一个用原始值初始化数组吗?

3.2K30

js判断数组是否包含某元素方法有哪些_js判断数组里面是否包含某个元素

find() 方法为数组每个元素都调用一次函数执行: 当数组元素测试条件时返回 true 时, find() 返回符合条件元素,之后值不会再调用执行函数。...findIndex() 方法为数组每个元素都调用一次函数执行: 当数组元素测试条件时返回 true 时, findIndex() 返回符合条件元素索引位置,之后值不会再调用执行函数。...如果没有符合条件元素返回 -1 注意: findIndex() 对于数组,函数是不会执行。...(v=>{ if(v === 查找值) { //则包含该元素 } }) 别的做法: js存在一个数组,如何判断一个元素是否存在于这个数组呢,首先是通过循环办法判断,...indexOf方法来判断,如果元素存在于数组,那么返回元素在数组下标值,如果不存在,那么返回-1,注意indexOf是区分大小写,字母O必需大写,不然是会报错,另外,该方法某些版本IE是不起作用

9.9K60

js关于假值和数组总结

1、“假值”总共只有6个: false,undefined,null,0,""(空字符串),NaN 除此之外所有值,都是“真值”,即在逻辑判断可以当true来使用 用代码表示: if(false&&...undefined&&null&&0&&""&&NaN){ console.log('其中有真值'); }else{ console.log('全部都是假值'); } //全部都是假值 2、对于数组对象疑惑...疑惑来源:用数组对象进行if语句判断为true,但是数组和true进行==运算时,返回是false 用代码表示: if([]){ console.log('数组转化为布尔值为true...');//数组转化为布尔值为true } if({}){ console.log('对象转化为布尔值为true');//对象转化为布尔值为true } if([]==true){...console.log('数组等于true'); }else{ console.log('数组等于false');//数组等于false } 为什么数组转化为布尔值是true,而下面和true

5.1K30

Angular 应用创建包含组件

理解组件包含 包含组件就是指可以包含其它组件组件, 以 Bootstrap 的卡片 (Card) 为例, 它包含页眉 (header) 、 主体 (body) 和 页脚 (footer) , 如下图所示...卡片页眉和页脚只能显示文本; 卡片主体能够显示任意内容, 也可以是其它组件; 这就是所谓包含。...创建包含组件 angular , 所谓包含就是定义固定视图模板同时, 通过 标签来定义一个可以放动态内容位置。 下面就来实现一个简单的卡片组件。...使用卡片组件 另外一个组件 AppComponent 中使用刚刚创建的卡片组件的话, 代码如下所示: <!...包含多个位置 使用 select 属性, 可以一个组件定义多个包含位置。 现在继续修改卡片组件, 允许页眉和页脚包含动态内容。 <!

4.8K20
领券