最近我一直在批評我的構建循環for
像這樣:在for循環之前定義循環迭代器?
var i:MovieClip;
for each(i in array)
{
// be awesome
}
或者,
var i:uint = 0;
for(i; i<10; i++)
{
// be more awesome
}
這讀取更好地爲我個人,但我被罵了吧。 是否有的區別?
最近我一直在批評我的構建循環for
像這樣:在for循環之前定義循環迭代器?
var i:MovieClip;
for each(i in array)
{
// be awesome
}
或者,
var i:uint = 0;
for(i; i<10; i++)
{
// be more awesome
}
這讀取更好地爲我個人,但我被罵了吧。 是否有的區別?
trutheality的答案是大多數語言的最佳考慮因素,考慮到這個問題直到後期才被標記爲actionscript-3,這是一個很好的迴應。
但是,Actionscript使用變量提升,其中變量定義爲的任何地方的變量在該函數中被限定爲該函數而不是其最內部塊。這blog post描述得很好,它在docs on variable scope中提到。由於提升,在循環之前或之內定義變量之間的Actionscript中沒有區別。
爲了展示這種瘋狂可以得到,你甚至可以在循環之後定義變量:
for (i = 0; i < 5; i++) {
trace(i);
}
var i:int;
你可能想何況這是什麼語言。 – Nemo 2011-06-02 04:37:02
不用擔心,那是怎麼回事。 – Marty 2011-06-02 04:39:48
你甚至可以在for()循環中刪除第一個我爲'(; i <10; i ++)' – grapefrukt 2011-06-02 08:22:34