我订阅的想法是,变量不应该被初始化,直到你要使用它们。它使得更容易记住变量代表的是代码是否会消耗变量,并且减少了变量在初始化和正确使用之间被误用的可能性。如何保持良好的代码组织而不牺牲性能?
当使用该变量在一个循环或两个循环内时出现问题。然后,初始化成本增加,它可能开始影响性能。
在Perl的(或一般,酌情而定),是他们的任何整洁的小技巧,让你把一个循环内的变量的初始化,但是使得它只被第一遍初始化?
我想象的是这样的:
my $variable = undef;
while ($outer_loop) {
while ($inner_loop) {
$variable = $variable || 'initial_value'
}
}
注:言下之意是,$variable
不是在循环中重新分配。
现在也许是我,但这似乎有点不雅。
所以,这里是我的问题:是否有一个更好的方法来做到这一点,或者我只是需要克服自我和妥协的代码组织,或吸了上面的'不雅'的解决方案?
它确实...它不是一个简单的赋值;该值通过函数调用生成。我同意,一般来说,衡量价值生成的成本可能会更好,看看它是否有意义,但我仍然有兴趣查看是否还有其他技术可以/通常/应用 – Dancrumb 2011-01-13 19:04:32
多久会你期望在没有足够进入循环来调用你的初始化函数的情况下,接近那个代码片断*。在循环顶部初始化变量的代码仍然按照不同的顺序执行相同的工作量。而且,您不必每次都通过内部循环来检查变量是否已初始化。 – 2011-01-13 19:18:36