我只是知道这是一个愚蠢的问题,所以请原谅我。
我想基本上在它自己的.as文件中对一个简单函数进行分类。该函数比较整数。但我不知道如何调用该类并接收布尔返回。
这是我的班级
package
{
public class CompareInts
{
public function CompareInts(small:int, big:int)
{
compare(small, big);
}
private function compare(small:int, big:int):Boolean
{
if (small < big)
return true;
else
return false;
}
}
}
所以现在我想写这样的东西:
if(CompareInts(1,5)== true)。或者通过写跟踪输出'true'(CompareInts(1,5));
答案 0 :(得分:1)
您有两个选择:
1)使您的比较功能公开和静态。
static public function compare(small:int,big:int):Boolean {
{
if (small < big)
return true;
else
return false;
}
}
并称之为:
CompareInts.compare(1,5);
2)你实际上并不需要课程。你可以使用一个功能。只要每个AS文件只有一个公共定义,你就可以了(我的意思是,在“顶层”级别,你可以拥有一个公共类,一个接口,一个公共函数,一个公共var或一个公共命名空间如果你试图拥有不止一个,它将不起作用。
package {
public function compare(small:int,big:int):Boolean {
{
if (small < big)
return true;
else
return false;
}
}
或者,您可以将其内联到一行并完全抛弃类/函数(不需要填充,为了清晰起见,我只是添加了它们):
var compare:Boolean = (small < big);
答案 1 :(得分:1)
您正在创建Class
,然后function
成为Class
的成员,因此要调用它们,您必须实例化Class
,然后调用创建实例的功能。
同样CompareInts
是类的构造函数,它不能返回任何内容
与您的班级对应的工作代码将是:
package {
public class CompareInts {
public function CompareInts(){}
public function compare(small:int, big:int):Boolean {
if (small < big)
return true;
else
return false;
}
}
}
new CompareInts().compare(1, 2);
但是这有点过分,所以你能做的就是在你的班级中创建一个静态函数,然后直接调用它而不需要实现该类。
package {
public class Compare {
public static function compareInts(small:int, big:int):Boolean {
if (small < big)
return true;
else
return false;
}
}
}
Compare.compareInts(1, 2)
如果您不想将更多功能分组到一个类中,您可以随时在一个包中声明一个函数:
package {
public function compareInts(small:int, big:int):Boolean {
if (small < big)
return true;
else
return false;
}
}
答案 2 :(得分:1)
AS3构造函数永远不能有返回值。如果要将此方法保留在类中,则让构造函数只调用init()函数并使init()返回值。
希望有助于澄清“为什么?”那可能在你脑海中旋转。