在DDMathParser(Swift)中定义自定义函数

时间:2016-03-18 14:36:17

标签: swift function swift2 customization ddmathparser

我试图通过DDMathParser内置的机制在Swift中定义和格式化自定义函数。我曾尝试按照Wiki上的说明进行操作,但对于对Swift编码比较新的人来说,没有足够的细节。我想要创建的函数将被称为" dsi"并将调用已经内置的函数sin()和dtor(),如下所示:sin(dtor())。

有什么建议吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

可以找到声明自定义函数的示例in the unit tests for DDMathParser,我将在此处添加:

queues="q1 q2 q3 q4"
echo ${queues} | xargs -n1 echo "Remove"

您显然希望提供传递给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) } 构造函数的评估块的不同实现。

顺便提一下,您是否知道DDMathParser已经支持您已经描述的确切案例? Function对象具有Evaluator属性。默认值为angleMeasurementModebut you can change it to .Degrees if you create your own evaluator