使用一个字段创建 Ada 记录

2024-02-03

我定义了一个类型:

type Foo is record
   bar : Positive;
end record;

我想创建一个返回记录实例的函数:

function get_foo return Foo is
    return (1);
end get_foo;

但艾达不让我这么做,她说“位置聚合不能有一个参数”。
愚蠢地尝试,我在记录中添加了另一个愚蠢的字段,然后return (1, DOESNT_MATTER); works!

我如何告诉 Ada 这不是位置聚合,而是创建记录的尝试?


位置聚合初始化不能用于只有一个组件的记录,但这并不意味着您不能拥有只有一个组件的记录。

记录类型的值是通过给出命名字段的列表来指定的。适合您的正确代码get_foo功能应如下所示。

function get_foo return Foo is
    return (bar => 1);
end get_foo;

您还可以使用以下命令指定记录的类型Foo'(bar => 1)表达。

在实践中,使用命名组件列表比位置初始化更好。您可能会忘记该组件的位置,并且如果您在记录中添加新字段,该位置也不会改变。

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

使用一个字段创建 Ada 记录 的相关文章

  • 如何创建 ada lib.a 并链接到 C

    我正在尝试创建一个 ada 库并尝试了一些不同的东西 我尝试使用 makefile 编译项目并尝试从所有 o 文件创建一个库 这似乎没有按预期工作 然后我询问了 adacore 支持 他们向我指出了在 ada 和 c 项目中使用 gpr 文
  • 访问类型声明对释放的影响

    在这两种情况下 在声明块之后 当然是在过程结束之前 是否以相同的方式释放内存 procedure allocation is type T Integer Access is access Integer begin declare P T
  • 在 GPS (Ada IDE) 中使用 glib.h 进行编译时出现问题

    我在尝试在 GPS 中编译 Ada 代码时遇到一些麻烦 当我将 GPS 放入包裹中时 它显示丢失 我尝试使用 apt get 安装 确实如此 但错误仍然存 在 接下来我能做什么 我在 x64 Ubuntu 12 04 上运行 GPS 这是我
  • 如何检查一个元素是否属于一种子类型或另一种子类型?

    刚刚了解了 Ada 中的枚举和类型 决定写一个小程序来练习 with Ada Text IO use Ada Text IO with Ada Integer Text IO use Ada Integer Text IO procedur
  • “在 SPARK Ada 中接受挑战”- 后置条件下的总和鬼函数有意外行为

    我正在 SPARK Ada 中编写一个软件 它需要后置条件来验证函数返回值是否等于数组的求和值 在证明函数所在的文件后 我不断收到一个错误 该错误并没有完全加起来 没有双关语的意图 我将发布代码的屏幕截图以便更好地查看 大小为 10 的数组
  • SPARK 整数溢出检查

    我有以下程序 procedure Main with SPARK Mode is F array 0 10 of Integer 0 1 others gt 0 begin for I in 2 F Last loop F I F I 1
  • 将分隔的字段合并为一个

    我在 Ada 工作 我有一个非常丑陋的类型 我无法修改 我想做一些易于使用的事情 类型是这样的 for T Ugly Type Alignment use 4 for T Ugly Type Size use 48 for T Ugly T
  • 从大端数据中提取记录

    我有以下用于网络协议实现的代码 由于协议是大端 我想使用位顺序属性和高阶优先值 但看来我犯了一个错误 With Ada Unchecked Conversion with Ada Text IO use Ada Text IO with S
  • Ada:Windows 上的 cmake 和 PLplot 安装

    这是该帖子的后续内容Ada 绘制二维图 https stackoverflow com questions 3210207 ada plotting 2d graphs 我决定创建一个新帖子 因为这是一个单独的问题 Windows 版 PL
  • Ada 通用平均函数

    我有一个函数可以对记录数组中的某个数值进行平均 该值可以是自然类型增量 也可以是枚举类型增量 我让它正确地总结了这些值 但我的问题是 如何将数组的长度转换为通用类型 以便它可以除以整数和增量类型数字 在记录数组上使用 长度 属性 这样做的优
  • Ada95 中的线程和信号量

    如何在 Ada95 中使用线程 我可以使用哪些函数来创建 销毁 停止和启动它们 我如何在这种语言中使用信号量 并发性内置于该语言中 因此您可以为任务 即线程 和受保护对象 即比信号量 互斥体 条件变量更强大 使用特定的 Ada 语法 这使得
  • Ada T'Class 的基础知识

    虽然有点不好意思问这个问题 但我知道这是最好的 我已经使用 Ada 编程很多年了 并且几乎可以流利地理解该语言的每个部分 然而 我似乎始终无法完全理解 T Class 借用别人的话 有人可以 像我五岁一样解释一下吗 编辑 我买它只是为了拥有
  • 从 Ada 代码构建静态库,无需 GNAT 即可链接

    我正在尝试从 Ada 代码创建一个静态库 该库可以与一些 C 代码链接 而无需使用 GNAT 工具进行最终链接 我的用例是 我正在尝试将一个用 Ada 编写的库交付给一个为嵌入式目标构建的 C 代码库 为目标构建最终二进制文件的工具链不包含
  • Mac OS 上的 Ada 编译器 GNAT

    我正在尝试使用 mac 上的终端编译 ada 但总是收到此错误 错误 x ada 中的 ada 值无效 有人知道如何解决这个问题吗 你可能没有安装Ada编译器 OSX自带的gcc不支持Ada 目前 有两种适用于 OSX 且支持 Ada 的免
  • ‘access’参数模式有什么用处?

    Ada 中有三种传递参数的 正常 模式 in out and in out 但还有第四种模式 access 有什么需要它们的吗 即 否则不可能实现的事情 现在 我确实知道 GNAT JVM Ada 编译器在导入的 库 规范中大量使用了它们
  • Ada 的命令行参数

    我正在编写一个 Ada 程序 该程序应该对字母字符进行大小写转换 该程序使用 1 2 或 3 个命令行参数 我几乎已经把事情写下来了 但我不知道如何进行论证 命令行参数是 单个字符指定是否要进行大写转换或小写转换 应用于输入 U 或 u 表
  • [“03C0”]如何匹配附件P中的语法?

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

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

    我正在读巴恩斯那本出色的 艾达 一书 这是第 11 7 节中用于深度比较链表的代码示例 type Cell is record Next access Cell Value Integer end record function L R a
  • Ada:用可变大小的数组打包记录

    我正在寻找创建一个打包记录 它可以容纳长度从 5 50 个元素不等的数组 是否可以以这样的方式来完成此操作 以便可以在不浪费空间的情况下打包记录 当我去创建记录时 我会知道数组中有多少元素 the range of the array ty

随机推荐

  • SVG 和 HTML 中的缩放元素有区别吗?

    这个问题 https stackoverflow com questions 5882716 html5 canvas vs svg vs div看起来很相似但最终是不同的并且没有帮助 而且 接受的答案是2011年写的 似乎已经过时了 该问
  • 在 R Shiny 中跨多个模块使用reactiveValues

    我正在尝试在 R 闪亮应用程序中的多个模块中使用reactiveValues 我举了一个例子来说明我的问题 它由一个主应用程序组成 其中包含一个reactiveValue 它是一个3列的数据帧和3个旨在 读取 写入 和 读写 reactiv
  • 如何使用 Swift 将 JSON 数组数据加载到 UIActionSheet 按钮标题中

    I have JSON内的数据array 我需要加载这个数组数据UIActionSheet button title 在这里 我尝试使用单个创建一个通用的 UIActionSheetbutton 基于数组字符串 我需要加载数据作为按钮标题
  • Python 的多个构造函数

    我有一个 A 类 可以通过两种不同的方式生成 a A xml 文件路径 a A 列表 列表 第一个方法以文件路径作为输入 从 XML 文件解析以获取 listA 和 listB 第二种方法给出了两个列表 我可以想到两种方法来实现多个构造函数
  • 虚函数可以被非虚函数覆盖吗?

    在此代码中 class Base public virtual void method 0 class Derived1 public Base public virtual void method override class Deriv
  • 从顶部滑动抽屉

    我试图让一个滑动抽屉在我的应用程序中从顶部拉下 但我无法找到一种方法来做到这一点 有什么帮助吗 内置的滑动抽屉不是那么灵活 你最好的选择是扩展它并修改它的行为 或者看看这个http code google com p android mis
  • Git 软件(例如 Gitbox、Github、SourceTree)可以使用远程存储库而不是本地存储库吗?

    我喜欢使用 Git 软件来推送提交 但我使用的软件 Gitbox Github SourceTree 在向其添加新存储库时都要求本地存储库 问题是 我的存储库位于我的开发服务器上 而不是我的本地计算机上 那么 Git 软件是否可以使用远程
  • Nodejs Express 4 Multer | Nodejs Express 4 Multer如果用户未授权则停止文件上传

    我在用着multer作为 Express 4 的多部分中间件 Express 配置为使用护照作为身份验证中间件 但如果用户未经身份验证 我找不到阻止文件上传的方法 我想使用 onFileUploadStart 来拒绝该文件 但我找不到与 请
  • 禁用链接和 上的浏览​​器工具提示

    当用户将鼠标悬停在某些链接和元素上时 我想抑制网络浏览器的默认工具提示显示 我知道这是可能的 但我不知道如何实现 有人可以帮忙吗 这样做的原因是抑制微格式日期时间的工具提示 BBC 放弃了对 hCalendar 的支持 因为机器可读日期的外
  • 您可以隐藏 QGroupBox 框架但保留其内容可见吗?

    我有一个QGroupBox 根据上下文 它的标题可能是多余的 显示在 GUI 的另一个位置 所以我需要将QGroupBox不在这里 但我必须保留它的内容可见 所以我不想打电话QGroupBox hide 我需要在运行时动态执行此操作 并希望
  • 如何使 Groovy 方法真正受到保护

    尝试在groovy中创建一个方法protected package com foo class Foo protected def getSomething 这不起作用 因为默认情况下 groovy 几乎使所有内容都可见 所以我尝试使用 P
  • HTML 按钮 - 按住按钮时它将重复该操作

    我是 HTML 新手 我正在开发一个项目 该项目需要使用一个按钮 当您按住它时 它会重复相同的操作 这是我到目前为止得到的代码 但没有起作用 DOCTYPE html gt
  • 三个值的异或

    进行三向异或的最简单方法是什么 换句话说 我有三个值 并且我想要一个仅计算为 true IFF 的语句one三个值中的一个为真 到目前为止 这就是我想出的 a b a c b c b a b c a c c a c b a b 有没有更简单
  • 使用 MongoDB C# 驱动程序查询构建器获取项目计数

    使用 MongoDB 的 C 驱动程序 我可以轻松构建一个查询 然后可以添加 SetSkip 和 SetLimit 参数以将结果集限制为特定大小 不过 我希望能够在应用 Skip 和 Take 之前知道查询的项目数是多少without执行查
  • 如何将 pandas 数据框转换为嵌套字典

    我正在运行 Python 3 6 和 Pandas 0 19 2 并且有一个 DataFrame 如下所示 Name Chain Food Healthy George McDonalds burger False George KFC c
  • 用一个最深的循环限制递归,并为所有元素分配精确的 id

    需要从混合顺序中对元素进行排序 排序是使用递归方法完成的 代码中未实现 while 必须满足两个条件 递归应该只捕获最长的链 其他链不应输出 一个元素与STATUS 0 逻辑上 链中的第一个元素 不应显示 but its id 3值必须分配
  • 如何将 JIRA 与 Selenium WebDriver 集成?

    如何将 JIRA 与 Selenium WebDriver 集成 实际上我想执行测试用例并报告 JIRA 中每个测试用例的通过 失败状态 你的问题很笼统 我的回答也很笼统 Jira 并不完全是一个 TCM 测试用例管理器 应用程序 尽管它肯
  • 如何使用 MongoDB 搜索文档中所有字段的单词或字符串?

    我们遇到的情况是 用户希望有一个 多功能框 来搜索文档中任何位置的单词 短语 MongoDB 是否能够执行此搜索 还是必须对每个字段进行显式搜索 你需要创建一个通配符文本索引 https docs mongodb org manual co
  • 相当于 PowerShell 中的 Bash 别名

    PowerShell 新手问题 我想在 PowerShell 中创建一个与此 Bash 别名完全相同的别名 alias django admin jy jython path to jython dev dist bin django ad
  • 使用一个字段创建 Ada 记录

    我定义了一个类型 type Foo is record bar Positive end record 我想创建一个返回记录实例的函数 function get foo return Foo is return 1 end get foo