我试图通过内置到DDMathParser中的机制在Swift中定义和格式化自定义函数。我试过遵循Wiki上的说明,但是对于对于Swift编码相对较新的人来说,还没有足够的细节。我要创建的函数将被称为"dsi“,并将调用已经内置的函数sin()和dtor(),类似于: sin(dtor())。
有什么建议吗?
谢谢!
发布于 2016-03-20 20:29:26
可以找到一个声明自定义函数的示例在DDMathParser的单元测试中,我将在这里介绍该示例:
func testCustomFunction() {
let function = Function(name: "foo", evaluator: { (args, subs, eval) throws -> Double in
return 42
})
let eval = Evaluator()
guard XCTAssertNoThrows(try eval.registerFunction(function)) else { return }
guard let e = XCTAssertNoThrows(try Expression(string: "foo()")) else { return }
guard let d = XCTAssertNoThrows(try eval.evaluate(e)) else { return }
XCTAssertEqual(d, 42)
}显然,您希望提供传递给Function构造函数的评估块的不同实现。
顺便提一句,您是否知道DDMathParser支持您正在描述的确切情况?Evaluator对象具有angleMeasurementMode属性。默认值是.Radians,如果您创建自己的评估器。
https://stackoverflow.com/questions/36087111
复制相似问题