不少朋友和我說,資料類型寫的麻煩,又沒什麼大用。
讓我們先比較下面兩行代碼:
var i = new Array(1,2);
和
var i:Array = new Array(1,2);
上面那句和下面那句的差別僅僅是:下面那句對變量标注了資料類型。在實際執行過程中,效果是完全一樣的。但很明顯,上面那句看起來要簡潔的多了。
是以,在不少的AS代碼中,類似這樣的語句看到的非常多,比如:
var i = 5;
var i = [1,2];
var i = "string";
但真的是一樣的嗎?讓我們再比較兩段代碼:
i = 5;
trace(typeof(i));
var i:Array = new Array(1,2);
i = 5;
trace(typeof(i));
在Flash中運作,上面那段代碼完全通過,輸出變量的類型:Number
而下面那段代碼無法通過,提示“1067: int 類型值的隐式強制指令的目标是非相關類型 Array。”
看到差別了嗎?這樣的情況是我們希望避免的,但如果沒有指定資料類型,在程式編譯的時候,并不會産生錯誤提示。而如果發生這樣的錯誤,是很難排查的。也許10+1得到的結果就不是11而是101(字元類型處理)。
事實上,AS3采用了比AS2更為嚴格的檢測機制。例如,我們看下面這個例子:
首先,我們在舞台上建立一個執行個體名為tt的動态文本框。然後在第一幀寫入以下代碼:
var i:Number = 500;
tt.text = i;
在Flash8中,該程式順利通過。但在Flash CS3中運作,産生資料類型不符合的報錯。
是以,在編寫AS代碼的時候,請盡量養成規範、良好的書寫習慣,這對我們的學習是有利的。
本文轉自 windtoto 51CTO部落格,原文連結:http://blog.51cto.com/windtoto/370302,如需轉載請自行聯系原作者