我訂閱的想法是,變量不應該被初始化,直到你要使用它們。它使得更容易記住變量代表的是代碼是否會消耗變量,並且減少了變量在初始化和正確使用之間被誤用的可能性。如何保持良好的代碼組織而不犧牲性能?
當使用該變量在一個循環或兩個循環內時出現問題。然後,初始化成本增加,它可能開始影響性能。
在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