谁能解释一下,当涉及到函数和变量时,Haxe语法的区别是什么?
public var theName;vs
static public var theName;或
static private var theName;vs
private var theName;对于ex的函数也是如此。
static private function(){} vs private function(){}
发布于 2015-10-20 07:09:23
有两个作用域
static它指的是类。也就是说,它可以通过类引用和名称来引用。
ClassName.reference();将是:
class ClassName{
static public function reference(){
return "hello world";
}
}另一个是引用使用new运算符构造的类实例。
new ClassName().reference();这将是:
class ClassName{
public function new(){
//We need a constructor.
}
public function reference(){
return "hello world"
}另一种是选择:
public / private引用类型作用域之外的引用的可用性。
private function reference(){
return "hello world";
}只有在this变量引用相关类实例的情况下调用时才可用。所以:this.reference()可以编译,但new ClassName().reference()不能。
static private function ....具有类似的效果,因为它仅在类位于本地的情况下可用
class MyClass{
private static function unavailable(){
return "available";
}
public static function available(){
return something();
}
}
class Main(){
static public function main(){
MyClass.unavaliable()//will not compile
MyClass.available()//good to go.
}
}发布于 2015-10-19 23:59:29
静态:该字段属于类本身,而不属于该类的实例。静态标识符可以直接在类本身中使用。在类外部,它必须与类名一起使用(例如: my.pack.MyClass.name)。
http://old.haxe.org/ref/oop
https://stackoverflow.com/questions/33218493
复制相似问题