我可以在haxe中做这样的事情:
trace ("Blue".description);
trace ("Green".description);
trace ("Red".description);
然后,在某处添加一个基于字符串值的开关,为每个案例返回不同的描述?
我看到有人使用此功能进行本地化,例如"Car".i18()
任何人都可以提供帮助吗?
答案 0 :(得分:1)
基本上它允许你假装静态方法是成员方法,但第一个参数是你正在操作的对象。
在你的例子中
class ColorDescriptions {
static public function description( color:String ) {
return switch (color) {
case "red": "passionate";
case "blue": "calm";
case "green": "environmentally friendly";
default: "unknown colour";
};
}
}
然后:
using ColorDescriptions; // Use static methods from `ColourDescriptions` as mixins
...
trace( "red".description() ); // "passionate"
这仅适用于方法/函数,而不适用于属性。因此"red".description()
是可能的,但"red".description
不是。