gpt4 book ai didi

ada - 在 Ada 中返回一个包含一个元素的数组

转载 作者:行者123 更新时间:2023-12-04 16:24:19 25 4
gpt4 key购买 nike

我正在尝试返回一个只有一个元素的函数的数组。我尝试了几种口味,但仍然找不到它想要我做的事情:

with Ada.Text_IO; use Ada.Text_IO;

procedure Beer_Lists is
type Beer is (Guinness, PBR, Budweiser);
type Beer_List is array (Positive range <>) of Beer;

function Beer_I_Like return Beer_List;

function Beer_I_Like return Beer_List is
begin
-- error: Positional aggregate cannot have one component
-- error: write instead "Beer_List'First => ..."
return (Guinness);

-- error: expected type "Beer_List"
-- error: found type "Beer"
-- return Guinness;

-- error: prefix for "First" attribute must be constrained array
-- return (Beer_List'First => Guinness);

-- error: named association cannot follow positional association
-- error: "=>" expected (positional association cannot followed named association)
-- return (Beer_List'First => Guinness, Guinness);

-- error: named association cannot follow positional association
-- return (Guinness, Beer_List'First => Guinness);

-- error: prefix of attribute must be a name
-- error: qualify expression to turn it into a name
-- return (Guinness)'First => Guinness;

-- error: prefix for "First" attribute must be contrained array
-- error: missing ";"
-- return Beer_List'First => Guinness;
end Beer_I_Like;
begin
for B of Beer_I_Like loop
Put_Line (B'Image);
end loop;
end Beer_Lists;

最佳答案

出于某种原因(我想是为了避免表达式的歧义,但我没有检查),在 Ada 中您可以使用 位置聚合 形式 (1, 2, 3) 仅当值的数量大于 1 时(记录也是如此)。

解决方案是显式编写索引(或字段名称),如 (1 => Guiness)

关于ada - 在 Ada 中返回一个包含一个元素的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68553406/

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