You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MQL5如何实现函数返回结构体数组并读取返回结果?

MQL5返回结构体数组函数的错误修正与实现

代码存在的问题

  • 结构体定义不规范:将resultdata定义在函数内部,外部作用域无法识别该类型,同时代码中使用的MyData未做任何类型定义,类型完全不匹配。
  • 函数未声明返回值类型:MQL5为强类型语言,所有函数必须明确指定返回值类型,无返回值的函数也需要声明为void。
  • 缺少返回语句:函数内定义的数组没有通过return返回给调用方,函数执行完没有任何结果输出。
  • 接收变量未声明类型:my_function_feedback没有提前声明为对应结构体数组类型,编译器无法识别该变量。

正确实现代码

// 全局作用域定义结构体,确保所有调用位置都能识别该类型
struct ResultData {
    string name;
    double price;
    int qty;
};

// 明确声明函数返回值为ResultData类型的动态数组
ResultData[] my_function(){
   ResultData arr[] = {
      {"product 1", 110.000, 200},
      {"product 2", 110.100, 300},
      {"product 3", 110.200, 400},
   };
   // 显式返回结构体数组
   return arr;
}

void OnStart()
{
   // 声明对应类型的变量接收函数返回结果
   ResultData my_function_feedback[];
   my_function_feedback = my_function();
   
   Print("First is ", my_function_feedback[0].name);
   // 输出结果:First is product 1
}

内容的提问来源于stack exchange,提问作者relo80

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 15:54:04