在类之外创建静态/类函数

Tom*_*Tom 1 actionscript-3

如何使用actionscript创建一个类函数,我需要一些静态工具函数,这些函数很容易从其他类中使用,如 test = tools.rtrim(xx);

例如,这不编译:

package com.my.tools
{
static function rtrim(string:String):String {
            return string.replace(/\s+$/,"");

        }
}
Run Code Online (Sandbox Code Playgroud)

Jam*_*Hay 6

它需要附加到类类型而不是包

尝试

package com.my.tools
{
     public class Tools
     {
         public static function rtrim(string:String):String 
         {
                return string.replace(/\s+$/,"");
         }
     }
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以通过Tools.rtrim("yourString")使用它;


The*_*o.T 6

如果您的工具集合变大,那么使用顶级函数也可能很有用.特别是如果你想在其他项目中重复使用一小部分"工具",而不是通过编译未使用的文件来浪费文件大小(如果你将它们全部包含在同一个类中,就会发生这种情况).

为此,在包文件夹中,您必须为每个函数创建一个文件.每个文件的命名方式应与其相关功能相同.例如,名为rtrim.as的每个文件的内容如下所示:

package com.my.tools {

    public function rtrim(str:String) : String {

        return string.replace(/\s+$/,"");   
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,您只需要在需要的地方导入顶级功能:

package my {

    import com.my.tools.rtrim;  

    public class Test 
    {
        rtrim("bla bla");
    }
}
Run Code Online (Sandbox Code Playgroud)