【发布时间】:2010-04-30 17:11:37
【问题描述】:
我已经定义了一个类型:
type Foo is record
bar : Positive;
end record;
我想创建一个返回记录实例的函数:
function get_foo return Foo is
return (1);
end get_foo;
但艾达不让我说“位置聚合不能有一个参数”。
愚蠢地尝试,我在记录中添加了另一个愚蠢的字段,然后return (1, DOESNT_MATTER); 工作!
我如何告诉 Ada 这不是位置聚合,而是创建记录的尝试?
【问题讨论】:
-
仅供参考:根据我的经验,大多数“讨厌 Ada”的人都会因为试图用 Ada 编写其他语言而感到沮丧。一旦你学会了真正写 Ada,它是一门非常好的语言。优于大多数。但是,它使 C 编译器非常糟糕。
-
例如,你真的必须考虑你的类型。如果在某些极端情况下您会尝试将 0 放入上面的条中,那么您将开始对常量
constraint_error感到非常沮丧。 -
作为一个乐观地接近 Ada 的人,我感到/很沮丧,因为与其他语言不同,Ada 让学习“Ada 的做法”变得非常困难。 :) 我喜欢 Ada 的想法,但我发现实现起来令人费解且令人沮丧。我同情 ada 仇恨者。 :p
标签: ada