gpt4 book ai didi

types - 将类型转换为字符串

转载 作者:行者123 更新时间:2023-12-01 06:54:06 25 4
gpt4 key购买 nike

我创建了一个类型:

packages MyTypes.Type_A is
subtype Counter_Type is Integer range 0 .. 15;
type Array_Counter_Type is record
Counter_01 : Counter_Type ;
Counter_02 : Counter_Type ;
Counter_03 : Counter_Type ;
Counter_04 : Counter_Type ;
end record;
end MyTypes.Type_A;

我想这样显示我的数组

MyArray : Array_Counter_Type;
print ( MyTypes.Type_A.Array_Counter_Type'Image (MyArray));

但是我有错误:

prefix og "Image" attribute must be scalar type

我该怎么办?是否可以“自定义”Image 以连接用“-”分隔的 4 个计数器?

最佳答案

这还不可能,但它将在 Ada 202x [ AI12-0020-1 ].在那之前,您必须定义一个子程序(例如 Image )并显式调用它。另见 this related question在 SO 上。

示例使用 GNAT.Formatted_String :

ma​​in.adb

with Ada.Text_IO;
with GNAT.Formatted_String;

procedure Main is

subtype Counter_Type is Integer range 0 .. 15;

type Array_Counter_Type is
record
Counter_01 : Counter_Type;
Counter_02 : Counter_Type;
Counter_03 : Counter_Type;
Counter_04 : Counter_Type;
end record;

-----------
-- Image --
-----------

function Image (Array_Counter : Array_Counter_Type) return String is
use GNAT.Formatted_String;
Format : constant Formatted_String := +"%02d-%02d-%02d-%02d";
begin
return
-(Format
& Array_Counter.Counter_01
& Array_Counter.Counter_02
& Array_Counter.Counter_03
& Array_Counter.Counter_04);
end Image;

AC : Array_Counter_Type := (0, 5, 10, 15);

begin
Ada.Text_IO.Put_Line (Image (AC));
end Main;

但你也可以使用 Ada.Integer_Text_IO , Counter_Type'Image等而不是如果 GNAT.Formatted_String不可用。

关于types - 将类型转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56804259/

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