gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 10:05:46 25 4
gpt4 key购买 nike

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

有什么建议吗?

谢谢!

最佳答案

可以找到声明自定义函数的示例 in the unit tests for 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 构造函数的评估 block 的不同实现。

顺便说一句,您是否知道 DDMathParser 支持您已经描述的具体情况? Evaluator 对象有一个 angleMeasurementMode 属性。默认值为.Radiansbut you can change it to .Degrees if you create your own evaluator .

关于swift - 在 DDMathParser (Swift) 中定义自定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36087111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com