比方說,我有一個類:Actionscript 3與單個構造函數參數?
public class SomeClass{
var name:String;
public function SomeClass(n){
name = n;
}
}
如果我做var s:SomeClass = SomeClass("test");
,它試圖將字符串轉換爲SomeClass
。我如何防止它做到這一點?
對不起,我是AS3的新手。
比方說,我有一個類:Actionscript 3與單個構造函數參數?
public class SomeClass{
var name:String;
public function SomeClass(n){
name = n;
}
}
如果我做var s:SomeClass = SomeClass("test");
,它試圖將字符串轉換爲SomeClass
。我如何防止它做到這一點?
對不起,我是AS3的新手。
你錯過了new
操作:
var s:SomeClass = new SomeClass('test');
除非您使用new
運營商,是不是真的有在ActionScript中創建一個類成員的好方法。但是有一些值得注意的例外。數組,XML,XMLList,int,uint,Number,String和Object應該幾乎不會使用它們的構造函數。
//To get a new array
var a:Array = [/*initial values*/];
// a new Object
var o:Object = {};
在AS中,使用該類的名稱作爲函數實際上是「將其轉換爲類」。您也可以通過as
運營商來完成此操作。不同的是,as
將返回null失敗的其他手段將拋出一個錯誤:
// I NEED this to be a Foo, so I will force the matter.
var foo:Foo = Foo(otherVariable);
// It would be nice to have this as a Foo, but if it is null, whatever:
var foo:Foo = otherVariable as Foo.
我從來沒有見過它嘗試自動轉換數據類型像你說的它。
但是,在任何情況下,您不是在類型轉換您的參數,並且您沒有聲明返回類型。
作爲一個構造函數,它需要返回void。
您還沒有聲明變量名的範圍/
你也沒有聲明包
package{
public class SomeClass{
public var name:String;
public function SomeClass(n:String):void{
this.name = n;
}
}
}
...或有他的木門前很多樹!? ;-) – splash
+1啊好趕 –
哇。失敗。我更習慣於Python和C++的沒有新的(對於非指向對象的指針) – Pwnna