gpt4 book ai didi

generics - 为什么预定义类型的变量包含在 "generic"下? (艾达)

转载 作者:行者123 更新时间:2023-12-05 04:14:37 28 4
gpt4 key购买 nike

我目前在大学攻读 CS,我刚刚开始学习数据结构和算法类(class)。我的教授非常喜欢(实际上是强制我们)使用 Ada。为了取得成功,我开始查找一些东西并找到了这段代码,它描述了如何编写通用堆栈:

generic
Max: Positive;
type Element_T is private;
package Generic_Stack is
procedure Push (E: Element_T);
function Pop return Element_T;
end Generic_Stack;

让我印象深刻的是变量“Max”。因为它是正类型,所以它是通用的似乎不合逻辑。也许我对这个想法还太陌生,但我认为泛型背后的想法是它基本上是一个空壳,可以在实例化时与不同的数据类型互换。

也许我只是不太了解泛型。如果没有,有人可以赐教吗?

最佳答案

在泛型的形式部分有一个变量是一种传递常量(在编译时)来配置泛型的方法。这样的常量可用于在某些数据结构(如数组 (1..Max))中定义其他变量,这并不总是通过将值作为参数传递给子程序来实现。此外,这确保 Push 和 Pop 都使用相同的“Max”常量(将这样的常量作为参数传递给两个子程序是没有意义的)

关于generics - 为什么预定义类型的变量包含在 "generic"下? (艾达),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34823464/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com