Ada:操作员不直接可见

2024-02-05

我正在使用 GNAT GPS studio IDE 来对 Ada 进行一些训练。我遇到了包可见性问题。

首先,我在名为“DScale.ads”的文件中指定一个包,其中包含以下类型:

package DScale is 
   type DMajor is (D, E, F_Sharp, G, A, B, C_Sharp);
end DScale;

然后,我在另一个文件(“Noteworthy.ads”)中指定一个包,该包定义将使用 DScale 包的 DMajor 类型的过程:

with Ada.Text_IO;
with DScale;

package NoteWorthy is 
   procedure Note;
end NoteWorthy;

最后,在“Noteworthy.adb”中,我提供了“Noteworthy”包的包体:

with Ada.Text_IO; use Ada.Text_IO;

package body Noteworthy is
   procedure Note is 
      package ScaleIO is new Enumeration_IO(DScale.DMajor);
      thisNote : DScale.DMajor := DScale.D;   
   begin
      ScaleIO.Get(thisNote);

      if thisNote = DScale.DMajor'First then 
         Put_Line("First note of scale.");
      end if;
   end Note;
begin
   null;   
end NoteWorthy;

如果我按原样保留代码,则“Noteworthy”包主体中的“if thisNote = DScale.DMajor'First then”语句将出现“操作符不直接可见”错误。

有没有办法在不使用“use”或“use type”子句的情况下绕过此错误?

谢谢。


Ada 类型不仅仅是值的描述,它们是产生大量操作的实体,具体表现为运算符和属性。因此,如果您希望直接看到类型的具体“=”运算符,则必须使其可见。为此,您需要“使用”或“使用类型”。

为什么要绕过语言功能?只需明智地使用它即可。

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

Ada:操作员不直接可见 的相关文章

  • 如何在 Octave 中永久加载包?

    我在 Windows vista 上使用 Octave 我在代码中使用 4 个包 但是每次我重新启动八度音程时 我都必须从命令行手动加载 pkg load 有没有办法永久加载它们 以便每当 Octave 启动时它都会在其路径中找到它们 当
  • 包(Python PIL/Pillow)已安装,但我无法导入它

    我想做一些图像处理 但遇到了问题 导入枕头模块似乎不起作用 我在这里找到了一个简单的脚本来检查安装了哪些软件包 我找到了它 但导入它似乎不起作用 这是我尝试运行的代码 import pip installed packages pip ge
  • 跨包模块设置日志记录的有效方法

    我有一个包 其中包含多个组件 这些组件将从使用日志记录和输出有用信息中受益匪浅 我不想做的是为每个文件 设置 正确的日志记录 并在以下位置进行 import logging logging basicConfig level DEBUG m
  • 从 Ada 代码构建静态库,无需 GNAT 即可链接

    我正在尝试从 Ada 代码创建一个静态库 该库可以与一些 C 代码链接 而无需使用 GNAT 工具进行最终链接 我的用例是 我正在尝试将一个用 Ada 编写的库交付给一个为嵌入式目标构建的 C 代码库 为目标构建最终二进制文件的工具链不包含
  • bash set -e and i=0;让i++不同意

    仅当变量的先前值为零时 以下带有调试选项 set e v 的脚本才会在增量运算符处失败 bin bash set e v i 1 let i echo I am still here i 0 let i echo I am still he
  • 更新嵌入数据,例如 sysdata.rda

    我最近向 CRAN 提交的内容被退回了 因为我有一份关于全球环境的作业 但现在这已引起人们的不满 我有一个嵌入式数据集 sysdata rda 其中包含基于用户所在州 如美国 的配置参数 我希望当新用户使用该程序时可以更新此嵌入数据集 我之
  • 创建流而无需从中创建物理文件

    我需要创建一个包含服务器上存在的文档的 zip 文件 我使用 Net Package 类来执行此操作 并创建一个新的 Package 即 zip 文件 我必须具有物理文件或流的路径 我试图不创建一个实际的 zip 文件 而是创建一个存在于内
  • “私人套餐”是什么意思? [复制]

    这个问题在这里已经有答案了 请看示例 private package com xm aws import static com xml aws PcgTest test public class PackageTest public sta
  • [“03C0”]如何匹配附件P中的语法?

    我正在编写一个工具来使用 2005 年附录 P 中提供的语法来解析 Ada 源文件 通过下面的代码 我知道 03C0 代表 希腊字母Pi 但它是合法的变量名吗 01 package Ada Numerics is 02 Pi constan
  • 在eclipse中的另一个项目中使用一个项目的包

    如何在定义包的主项目之外使用包的类 例如 假设 people 包中有一个属于 ProjectOne 的 Employee 类 假设另一个具有相同功能的项目 ProjectTwo 需要 Employee 我应该在那里做什么 在 Package
  • 我应该为 PyDev 下载哪个 Eclipse 包?

    我应该选择哪个 Eclipse 包来进行 Python 开发PyDev http www pydev org Eclipse 主页上没有任何内容告诉我要选择什么 并且 PyDev 文档假设我已经安装了 Eclipse 我选择哪个 Eclip
  • r-base 和 r-推荐包之间的区别

    谁能告诉我基本包和推荐包之间有什么区别 如果有提到基本包和推荐包的链接 请提供链接 差异实际上来自 R Core 和 R 代码的组织方式 例如在上游 SVN 存储库中 In src library 您拥有所有 基本 包 base 编译器 数
  • 使用 std::set 时重载运算符<

    这是我第一次使用 std set 容器 并且我对操作符 std less 遇到了问题 我声明该集合 std set
  • 从需求文件中安装 pip 失败,但可以一一安装

    我正在尝试使用 requests txt 文件通过以下命令安装一堆 python 依赖项 pip install r requirements txt requirements txt 文件包含以下包 pep8 selenium param
  • 选择性罐包装

    我有一个小program jar 它使用了巨大的library jar 的一小部分 有没有一种工具可以将多个 jar 重新打包成一个 以便它可以独立运行并且尽可能小 Update 大小事项 有proguard http proguard s
  • 计算ListBox中可见项目的数量

    我有一个名为 Book 的课程 class Book public string Name get set public string Author get set public int PagesCount get set public
  • 导入错误:无法导入名称“IntEnum”

    我正在尝试安装upstox 这是一个用于连接市场数据的 Python API 我无法在Python3 5上安装它 我的配置是Python 3 5 3 v3 5 3 1880cb95a742 Jan 16 2017 15 51 26 MSC
  • 我们可以在三元运算符(Java)中使用命令吗?

    这是一个工作代码 String a first String b second String object System out println object null a b 但它不是 String a first String b se
  • 为 Linux 安装 R 包时出错

    我试图在 R 3 3 上安装一个名为 rgeos 的包 但是当我输入 install packages rgeos 但它返回给我以下错误 其他包也会发生同样的情况 但不是所有包 gt installing source package rg
  • 闪亮的应用程序包:css 和所有 www/ 目录内容

    我正在尝试将 Shiny 应用程序转换为 R 包 但我在处理有关 www 目录以及 松散 文件的所有问题时遇到了问题 我闪亮的应用程序运行得很好 但是当我尝试 打包它 时 它不起作用 我闪亮的应用程序目录 my shiny app R ut

随机推荐

  • 批量传输和 Android USB API

    我有一个程序 我尝试通过 USB 将我的 Android 设备连接到网络摄像头 我在一些事情上遇到了麻烦 即正确传输数据 我尝试过使用bulkTransfer 但似乎无法识别它的使用情况 我一直在尝试寻找可能对我有帮助的例子 例如here
  • 使用 Scala 生成代码

    在 Scala 中使用 SBT 工具链时 是否可以编写一个任务来读取项目源代码的特殊部分以在编译时生成 scala 代码 有什么想法甚至文章 教程吗 我正在寻找与 Template Haskell 非常相似的东西 环树者 scala htt
  • Laravel Lighthouse 中的身份验证

    在我的 graphql API 中 我必须通过两个不同的因素来授权对字段的请求 用户是否有权访问数据或者数据是否属于用户 例如 用户应该能够看到自己的用户数据 并且所有具有管理员权限的用户也应该能够看到这些数据 我想保护这些字段 以便具有不
  • RedisTemplate过期不起作用

    我正在尝试测试 RedisTemplate 中的过期方法 例如 我将会话存储在 redis 中 然后尝试检索会话并检查值是否相同 对于过期会话 我使用 redisTemplate 的 expire 方法 对于获取过期会话 我使用 getEx
  • NuGet System.Drawing.Common .NET 6 CA1416 此调用站点可在所有平台上访问。 “Image.FromStream(Stream)”仅支持:“windows”

    升级 NuGetSystem Drawing Common到 6 0 0 会导致以下错误 CA1416 此调用站点可在所有平台上访问 仅在 Windows 上支持 Image FromStream Stream https www nuge
  • 无法将整数类型转换为 uuid

    我试着跑python3 manage py migrate 但我得到了这个error File Library Frameworks Python framework Versions 3 8 lib python3 8 site pack
  • 特定于页面的 CSS 规则 - 将它们放在哪里?

    通常 当我设计网站时 我需要将特定样式应用于页面上的特定元素 并且我绝对确定它只会应用于该页面上的该元素 例如绝对定位的按钮 或者其他的东西 我不想诉诸内联样式 因为我倾向于同意样式与标记分开的理念 所以我发现自己在内部争论将样式定义放在哪
  • Pandas 重新映射到列中的范围

    我有一个带有 id s 列的 DataFrame 可以包含重复项 gt gt gt df user id head Out 3 0 2134 1 1234 2 4323 3 25434 4 1234 Name user id dtype i
  • Roxygen2 - 如何 @export 引用类生成器?

    例如 假设我有以下包称为Test我想导出课程A In R Test R docType package import methods exportClass A A lt setRefClass A methods list foo ide
  • ASP.NET 内存泄漏 - OracleCommand 对象

    我有内存泄漏 我很难找出问题出在哪里 ASP NET 进程时常会增加到 1GB 我已按照本页 http humblecoder co uk tag windbg 上的说明进行操作 并且 gcroot 命令返回以下内容 最后 x 行 我查看了
  • 将字符串格式化为标题大小写

    如何将字符串格式化为标题大小写 http www grammar monster com lessons capital letters title case htm 下面是一个在 C 中执行此操作的简单静态方法 public static
  • 如何在映射器(Hadoop)中使用MATLAB代码?

    我有一个处理图像的 matlab 代码 我想创建一个使用该代码的 Hadoop 映射器 我遇到了以下解决方案 但不确定哪一个最好 因为对我来说 在 hadoop 中的每个从属节点上安装 matlab 编译器运行时非常困难 手动将该 matl
  • SendKeys Ctrl + C 到外部应用程序(文本到剪贴板)

    我有一个应用程序作为托盘图标位于系统托盘中 我已经注册了一个热键 按下该热键将捕获任何应用程序中的当前文本选择 甚至在 Web 浏览器中也是如此 我的方法是发送组合键 Ctrl C 来复制文本 然后访问剪贴板并在我自己的应用程序中使用该文本
  • 如何使用 FlowLayout 确定 UICollectionView 的高度

    我有一个UICollectionView与UICollectionViewFlowLayout 我想计算它的内容大小 返回intrinsicContentSize通过自动布局调整其高度所需的 问题是 即使我对所有单元格都有固定且相等的高度
  • .Net Core - 复制到剪贴板?

    Is it possible to copy something to the clipboard using Net Core in a platform agnostic way 看来Clipboard https msdn micro
  • iOS 13 后,在 pdf 上导航文本框不再起作用 - 使用 PDFKIT 时似乎存在手势问题

    我实现了一个项目 我使用 PDFKIT 来执行一些如何在 pdf 上添加浮动文本框的操作 并且它可以通过用户触摸屏幕进行导航GestureRecognizer移动并放置在用户决定的地方 在iOS 13之前它可以完美运行 但是在iOS 13之
  • MVC4 StyleBundle 未按正确的顺序呈现包

    我正在尝试渲染一组 css 文件 但输出的顺序错误 我已经尝试过解决方案 MVC4 Beta 缩小和捆绑 在浏览器中排序文件和调试 https stackoverflow com questions 9657412 mvc4 beta mi
  • python 中的协议缓冲区:未生成类

    My proto文件如下 syntax proto3 option csharp namespace Proto message FileListRequest repeated File Files 1 message File stri
  • 使用选择插入

    我有一个使用插入的查询SELECT陈述 INSERT INTO courses name location gid SELECT name location gid FROM courses WHERE cid cid 是否可以只选择 名称
  • Ada:操作员不直接可见

    我正在使用 GNAT GPS studio IDE 来对 Ada 进行一些训练 我遇到了包可见性问题 首先 我在名为 DScale ads 的文件中指定一个包 其中包含以下类型 package DScale is type DMajor i