例如,我的班级中有一个名为ceil
的属性。在函数内部,我想调用全局函数ceil
。我怎么能这样做?
class Example : BaseClass {
var ceil : Double { return ceil(self); } // Error: Cannot call value of non-function type 'Double';
func round : Double { return round(self); } // Infinite recursive
var flooring : Double { return floor(self); } // Success
}
但是,例如,我不想使用ceiling
。我想使用ceil
。在这种情况下我该怎么做?可能吗?我想如果可能的话,我可以调用Math.ceil(self)
这样的全局函数。
答案 0 :(得分:2)
您可以使用var ceil : Double { return Darwin.ceil(self) }
您应该为您的用例使用扩展,无需创建新类。这样,您可以在Double
上随时使用这些方法,而无需实例化新类
extension Double {
var ceil : Double { return Darwin.ceil(self) }
var floor : Double { return Darwin.floor(self) } // Success
}
答案 1 :(得分:1)
您可以使用var ceil : Double { return Demo.ceil(self); }
此处Demo
是项目名称。