2013-12-08 20 views
0

我可以做这样的事情在haXe的:如何将属性附加到字符串?

trace ("Blue".description); 
trace ("Green".description); 
trace ("Red".description); 

然后,再添加基于字符串值切换到为每个个案返回不同的描述?

我看到使用这种本地化的人,喜欢"Car".i18()

任何一个可以帮助?

回答

1

退房Using Mixins(也称为static extension

基本上,它可以让你假装静态方法是成员方法,但第一个参数是你操作的对象。

在您的例子

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不是。

+0

非常感谢您提供其他丰富的答案:) – simo

+0

不用担心!我很欣赏这些好问题,你问的所有问题都是现在每当有人用相同的问题搜索谷歌时就会显示出来的答案:)快乐的哈希! –

+0

是的,当然! – simo