Ada为什么要检查对象长度是否不等于自身。Ex if(变量';长度/=变量';长度)

Ada为什么要检查对象长度是否不等于自身。Ex if(变量';长度/=变量';长度),ada,codepeer,Ada,Codepeer,我正在审查一些ada代码,在整个项目中我一直看到以下代码 if(variable'Length /= variable'length) return; end if Codepeer将此标记为始终为false,这对我来说非常有意义,但我几乎没有ada经验。这是有效的吗?如果是,在什么情况下是正确的 谢谢。永远不要。您只能询问数组对象的长度,一旦声明了该对象,它就不能更改。永远不要。您只能询问数组对象的长度,一旦声明了该对象,它就无法更改。谢谢,我知道这听起来像个愚蠢的问题,但ada完全超

我正在审查一些ada代码,在整个项目中我一直看到以下代码

if(variable'Length /= variable'length)
   return;
end if
Codepeer将此标记为始终为false,这对我来说非常有意义,但我几乎没有ada经验。这是有效的吗?如果是,在什么情况下是正确的


谢谢。

永远不要。您只能询问数组对象的长度,一旦声明了该对象,它就不能更改。

永远不要。您只能询问数组对象的长度,一旦声明了该对象,它就无法更改。

谢谢,我知道这听起来像个愚蠢的问题,但ada完全超出了我的舒适范围。别担心。如果涉及到变量的值,那么从理论上讲,另一项任务可能会改变他们评估之间比较的两个方面,但是,这将表明您有竞争条件,并且任何此类检查都是无效的。我刚刚尝试了一个简单的版本,编译器完全消除了测试和
返回
-即使没有优化(
-O0
)。谢谢,我知道这听起来像个愚蠢的问题,但艾达完全超出了我的舒适区。别担心。如果涉及到变量的值,那么从理论上讲,另一项任务可能会改变他们评估之间比较的两个方面,但这会表明你有竞争条件,任何这样的检查都是徒劳的。我只是尝试了一个简单的版本,编译器完全消除了测试和
返回
——即使没有优化(
-O0
)。在我看来,这就像是疯狂的代码,由需要用棍棒好好敲击的人编写的。我会立即拒绝它(特别是如果它是在一个严重到足以保证为Codepeer付费的项目中)。在我看来,它就像是一个疯狂的代码,是由一个需要用cluebat好好敲打的人编写的。我会立即拒绝它(特别是如果它在一个项目中的严重程度足以保证支付Codepeer)。