“在此上下文中需要子类型标记”到底是什么?

2023-11-29

I get Subtype mark required in this context at (*)。子类型掩码到底是什么?为什么它在这里抱怨?

main.adb

(*)Open_Route : Route(1..3) := (others => new Location(X=>1.0,Y=>1.0, id=>1));
--     Closed_Route : Route (Open_Route'First .. Open_Route'Last + 1);
--     P1 : Population (1..2);

Location.ads 包规范

    type Location is record
      Id : Positive;
      X : Float;
      Y : Float;
   end record;
   type Location_Acess is access all Location; 
   type Route is array (Positive range<>) of Location_Acess; 
   type Route_Acess is access all Route;
   type Population is array (Positive range<>) of Route_Acess;

A 子类型标记基本上是一个表示类型或子类型的名称(ARM 3.2.2(4))。 ARM使用的原因子类型标记整个过程都与一些神秘的区别有关(ARM 3.2.1);当你说type Foo is你正在声明一个类型及其第一个亚型,以及名字Foo指的是第一个子类型。

我认为你的问题是你有一个包裹Location 包含同名实体,这让编译器感到困惑。

你还没有提供完整的可编译代码示例,但是在应用@ajb的建议之后,我认为它会是这样的:

package Location is
   type Location is record
      Id : Positive;
      X : Float;
      Y : Float;
   end record;
   type Location_Acess is access all Location;
   type Route is array (Positive range<>) of Location_Acess;
   type Route_Acess is access all Route;
   type Population is array (Positive range<>) of Route_Acess;
end Location;
with Location; use Location;
package Location_User is
   Open_Route : Route(1..3) := (others => new Location'(X=>1.0,Y=>1.0, id=>1));
end Location_User;

编译器错误消息将是

location_user.ads:3:47: subtype mark required in this context
location_user.ads:3:47: found "Location" declared at location.ads:1

(看看它如何告诉你查看第 1 行location.ads,包名?)

You could通过说来解决这个问题new Location.Location,但是这样你就需要到处说这句话了。

有两种规范的解决方案,两个阵营的支持者之间存在宗教分歧。

第一个(我更喜欢的)是调用包Locations并留下类型Location, Route, Population像他们那样。

第二个(其中I考虑丑陋并且只会在迫切需要时使用)将用后缀装饰类型名称:

type Location_Type is

or

type Location_T is
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“在此上下文中需要子类型标记”到底是什么? 的相关文章

  • Ada 中的信号量

    我得到了以下代码并要求实现一个信号量 with Ada Text IO use Ada Text IO with Id Dispenser with Semaphores use Semaphores procedure Philos is
  • 在 Ada 中创建子类型而不指定范围有什么意义?

    在Ada中 我经常看到这样的东西 type Number is new Integer 这有什么意义呢 难道你就不能快乐吗 Integer 我还看到过这样的代码 type Small Number is range 1 5 这对我来说是有道
  • 从 Ada 调用 scanf

    如何从 Ada 调用 scanf 也就是说 大概有一个适当的 pragma import 声明 但是声明会是什么样子呢 我感兴趣的是如何从 Ada 调用更难以驾驭的 C 函数 而不是如何解析字符串本身 所以我不是在寻找纯粹的 Ada 解决方
  • Ada:在块语句中写入文件

    我正在处理一个数组 其长度在程序执行期间确定 所以我正在利用block我可以在其中设置数组限制的语句 我在将数组的元素写入文件时遇到问题因为我在写入过程中使用了存根 我删除了存根 使所有内容都在同一代码中 虽然现在我的代码编译并运行 它没有
  • 是否可以声明具有无限上限的 Ada 范围?

    我想在 Ada 中声明记录类型的速度范围 下面的方法行不通 但是有没有办法让它工作呢 Speed in knots range 0 to unlimited Speed float Range 0 0 unlimited 我只想要这个数字的
  • 为什么字符串需要用初始值初始化?

    我有一根绳子lx String我想稍后在代码中设置该值 但出现错误unconstrained subtype not allowed need initialization provide initial value or explicit
  • 在 Ada 中实现具有访问类型的抽象函数

    我有一个名为 Statements 的包 其中包含一个名为 Statement 的抽象类型和一个名为execute 的抽象函数 在另一个包中 我有一个CompoundStatement 类型 它是一个Statement 类型 它实现了exe
  • 什么是“libgnarl”?

    What is libgnarl 我在不同的地方找到了对此的引用 例如在 gcc 源代码中或 gprbuild 的详细输出中 gprbuild 特别报告了有关决定是否libgnarl甚至是必要的 所以它显然是一个可选库 但实际的库是什么 我
  • Ada 中类型/包别名的单独声明

    我想声明一些 用户定义的编译器常量 以使我的规范文件尽可能保持 常量 这在 C 中很常见 例如 misc config hh namespace misc typedef std shared ptr a A ptr namespace a
  • 在Android中使用Ada代码

    Android 中是否有可能使用旧的 Ada 代码 我有一个用 Ada 编写的旧脚本 如果我可以直接在 Android 中使用该代码 通过 NDK 或 JNI 等 那就太好了 这可能吗 或者我应该移植代码 以下是我找到的一些链接 但我不太明
  • Ada GPS IDE 似乎找不到 GtkAda

    我已经安装了 GNAT 编程工作室 GPS 和 GtkAda 它们似乎都工作正常 但是当我尝试在 从模板新建项目 下构建简单窗口项目时 我收到一堆错误 提示 文件 gtk ads 未找到 这似乎是一个目录 依赖性问题 GPS 不知道在哪里寻
  • 将分隔的字段合并为一个

    我在 Ada 工作 我有一个非常丑陋的类型 我无法修改 我想做一些易于使用的事情 类型是这样的 for T Ugly Type Alignment use 4 for T Ugly Type Size use 48 for T Ugly T
  • Ada.Containers.Functional_Maps 在 Ada2012 中可用吗?

    有关的信息Ada Containers Functional Maps https docs adacore com gnat rm docs html gnat rm gnat rm the gnat library html ada c
  • C++ 中的 Ada 子类型等效项

    C 是否提供类似于 Ada 的功能subtype缩小类型 E g type Weekday is Monday Tuesday Wednesday Thursday Friday Saturday Sunday subtype Workin
  • 使用 SPARK 证明选择排序算法

    我试图证明我在 Ada 中的选择排序实现是正确的 我尝试了一些循环不变量 但使用 gnatprove 只能证明内部循环的不变量 package body Selection with SPARK Mode is procedure Sort
  • Ada:具有可变大小数组属性的对象

    我想在描述二维离散空间的包内创建一个标记类型 其大小在运行时确定 上下文 实施生命的游戏 https en wikipedia org wiki Conway 27s Game of Life 我发现的第一种方法是通用性 generic S
  • 在 Ada 中立即开始循环的下一次迭代

    我想要一个无限循环 其中循环几乎贯穿整个程序 并且在任何时候 基于条件语句 我希望它退出循环的特定迭代并返回到顶部并执行 有办法做到这一点吗 它不必是无限循环 它可以是一个for循环 我只想让它进入该循环的下一次迭代 您可以使用 goto
  • Mac OS 上的 Ada 编译器 GNAT

    我正在尝试使用 mac 上的终端编译 ada 但总是收到此错误 错误 x ada 中的 ada 值无效 有人知道如何解决这个问题吗 你可能没有安装Ada编译器 OSX自带的gcc不支持Ada 目前 有两种适用于 OSX 且支持 Ada 的免
  • 如何在 Ada 中直接访问内存地址?

    所以我是 Ada 的新手 我正在尝试在其中编写内核 但我似乎找不到任何关于如何正确执行此操作的好信息 在 C 语言中 我会这样写 unsigned char videoram char 0xB8000 videoram 0 65 直接访问视
  • 在 Ada 中定义通用标量类型包

    我想通过制作一个用于操作多项式的 Ada 包来测试编写 Ada 包的水 可以为多种代数结构定义多项式 因此为了反映这一点 我想使该包通用 以便它可以与浮点数 整数或其他数字子类型一起使用 我现在想说 我对 Ada 的类型系统如何工作或者它的

随机推荐

  • Pygame绘制抗锯齿填充多边形

    The documentation says For aapolygon use aalines with the closed parameter but pygame draw aalines doesn t let me specif
  • 如果主题带有星号,Outlook 电子邮件存档宏将不起作用

    我正在使用以下代码将我的电子邮件存档到目前完美运行的指定文件夹 除非电子邮件主题包含 然后这会给出调试消息 运行时错误 2147286788 800300fc 我可以在下面的代码中添加任何内容 使其忽略或将 替换为其他内容 以允许它自动存档
  • 火车站所需站台最少数量

    问题如下 给定到达火车站的所有火车的到达和出发时间 任务是找到火车站所需的最少站台数量 以便没有火车等待 火车可以在午夜之前到达 也可以在午夜之后到达 我理解传统问题是如何在没有火车可以在午夜之前到达并在午夜之后离开的条件下工作的 因为我见
  • iPhone 的 UIImageView isAnimating 返回错误

    我发现 isAnimating 即使在完成最大循环数并停止动画之后也会返回 true 然而 一旦你移动 UIImageView 它会突然更新并变为 false 以下是我的代码的重要部分 我以标准方式设置动画 UIImageView newI
  • ksoap2 org.xmlpull.v1.xmlpullparserexception 预期的 start_tag 错误

    下面是我编写的代码 用于验证用户登录凭据 使用 net编写的Web服务 private static final String SOAP ACTION http tempuri org getCredentials private stat
  • 查看 NSUserDefaults 文件内容

    有什么办法可以看到 NSUserDefaults 的内容吗 我可以从终端使用 pico 打开 plist 文件 但它显示奇怪的字符 我实际上看不到内容文件内容 有什么办法可以在 Xcode 中打开该文件吗 基本上 我希望能够查看和编辑 NS
  • iOS 上的 AWSS3TransferUtilityErrorDomain 代码=2

    AWSS3TransferUtilityErrorDomain Code 2 在 iOS 上上传达到 100 时出现此错误 而 Android 则工作正常 我在用react native s3 但这似乎是 sdk 或我的存储桶策略的问题 但
  • NameError:名称“self”未在 EXEC/EVAL 中定义

    我正在编码一些东西 并且有一个部分出现错误 但我找不到发生错误的原因 代码 示例 类似于错误部分 class Test def init self a 0 self x a self l 2 x for x in range a lt se
  • 使用 pip 安装 VTK

    我在 Arch Linux 上使用 Python 3 7 我一直在尝试用 pip 安装 Mayavi 但在安装 vtk 时总是失败 所以我发现即使尝试通过 pip 自行安装 vtk 应该有效 那个vtk确实没有安装 我收到此错误 sudo
  • 如何检测照片的拍摄角度,并像桌面应用程序在查看时自动旋转网站显示?

    如果我用相机拍照 它会存储设备的方向 角度 因此当我使用良好的应用程序在 PC 上查看图像时 它会显示自动旋转到 0 但是当我上传到网站时 它显示的是原始角度 所以图像看起来不太好 我怎样才能用 PHP 检测到这一点并旋转图像 并从它的元信
  • 如何在 Android 中用谷歌地图 v2 上的我的图标替换蓝点?

    我正在尝试用 Google 地图 v2 上我自己的图标替换蓝点 在地图上显示当前位置 我在下面尝试过 但没有成功 Android Maps API v2 更改我的位置图标 地图 V2 myLocation 蓝点回调 在 Google Map
  • 如何检测用户是否已登录 Firebase?

    我在 javascript 文件中使用 firebase node api 进行 Google 登录 firebase initializeApp config let provider new firebase auth GoogleAu
  • 具有多个 sql_variant 参数的 SQLCLR 自定义聚合

    Hy 几个月前我发布了一个关于 CLR 用户定义聚合的问题post 这就像一个魅力 但现在我想使用 sql variant 类型的两个参数来实现完全相同的功能 就像我之前的文章一样 这两个函数是 sMax 和 sMin 并且将根据第二个值返
  • 单线程同步与异步混淆

    Assume makeBurger 需要 10 秒 在同步程序中 function serveBurger makeBurger makeBurger console log READY Assume takes 5 seconds to
  • 如何正确使用CALLER_IS_SYNCADAPTER

    不知怎的 我不理解查询参数CALLER IS SYNCADAPTER的工作概念 它的默认值为 false 如果设置 则不会自动设置 DIRTY 标志 那么它到底意味着什么呢 根据我的理解 联系人的每次更改都会导致将脏标志设置为 1 同步适配
  • 具有模块导入的命名空间

    我正在学习Python 尽管我已经学习了大约一年 但我仍然是一个初学者 我正在尝试编写一个在主模块中调用的函数模块 被调用模块中的每个函数都需要数学模块才能运行 我想知道是否有一种方法可以在不将数学模块导入被调用模块内的情况下执行此操作 这
  • 使用 Gradle 构建 uberjar

    我想构建一个 uberjar 又名 fatjar 其中包含项目的所有传递依赖项 我需要添加哪些行build gradle 这就是我目前所拥有的 task uberjar type Jar from files sourceSets main
  • 使用 jni 库构建 AOSP 应用程序

    我正在尝试在 AOSP 内构建 Android 应用程序 我已经定义了Android bp文件如下 cc prebuilt library shared name libPrintString target android arm srcs
  • 获取文件的绝对路径

    如何在 Unix 上将相对路径转换为 C 中的绝对路径 有没有方便的系统功能 在 Windows 上有一个GetFullPathName函数可以完成这项工作 但我在 Unix 上没有找到类似的东西 Use 真实路径 The realpath
  • “在此上下文中需要子类型标记”到底是什么?

    I get Subtype mark required in this context at 子类型掩码到底是什么 为什么它在这里抱怨 main adb Open Route Route 1 3 others gt new Location