DWScript:如何在调用后获得结果

Ned*_*dko 6 delphi dwscript

好吧,我对DWScript完全不熟悉.现在我对它的能力非常着迷,但是虽然我在附带的wiki和问题/答案中阅读了所有页面,但是在从Delphi调用函数之后我仍然无法找到提取结果的方法:

  func := m_dwsExec.info.Func[funcname];
  func.call(params);
Run Code Online (Sandbox Code Playgroud)

然后我被困住了:exec.result.toString什么也没给我.只要我看到我没有Result在EXEC对象,这就是为什么清除从脚本项目时,堆叠的结果已经被删除和丢失.请告诉我这项简单任务的正确方法是什么?

Ned*_*dko 7

编辑:

正如Eric Grange在下面的评论中所说,最佳做法是这样的:

  func := m_dwsExec.info.Func[funcname];
  info := func.call(params);
  funcresult := info.ValueAsString; //or Value, ValueAsInteger, etc.
Run Code Online (Sandbox Code Playgroud)

原始答案:

好吧,我找到了答案 - 缺少的结果位于data返回IInfo对象的属性中:

  func := m_dwsExec.info.Func[funcname];
  info := func.call(params);
  funcresult := info.data[0]
Run Code Online (Sandbox Code Playgroud)

  • 正如您可能已经看到的那样,真正的文档存在于Eric在Test文件夹中创建的数百个单元测试用例中.起初看起来可能令人生畏,但每个案例都非常简单,并且经常会向您展示道路. (2认同)
  • 对于简单类型,您有Value和ValueAsXxx方法.Data []数组适用于更复杂的情况,或者您希望直接访问变体. (2认同)