返回函数类型以外的其他类型变量

Return other type variable than function's type

本文关键字:其他 类型变量 函数 类型 返回      更新时间:2023-10-16

如何返回函数类型以外的变量?

这是我的代码:

String wyslij(String cmd, boolean parse = false) {
  wifi.println(cmd);
  String response = "";
  bool beg = false;
  if(parse == true){
    (more code but this is not important)
    JsonObject& root = jsonBuffer.parseObject(response);
    return root; //how?
  }
return wifi.readString();
}

我想返回"root",我该怎么做?

谢谢!

严格来说,你不能。制作一个工会或一个特殊的结构只是为了传递,可能会给你你想要的东西。这是否是一个好主意取决于您的呼叫者在做什么。

编辑:这是一种方式:

String wyslij(String cmd, boolean parse = false, JsonObject * obj = NULL) {
  wifi.println(cmd);
  String response = "";
  bool beg = false;
  if(parse == true && obj != NULL){
    (*obj) = jsonBuffer.parseObject(response);
  }
  return wifi.readString();
}
void Caller() {
    JsonObject root;
    String ret_val = wyslij(cmd, true, &root);
    /* do things with root */
}

它可能不起作用,具体取决于制作JsonObject所涉及的副作用(除其他外),但它会给你要点。

你不能

,它违反了语言类型系统。

但是,您应该能够获得字符串表示形式,例如使用root.toString()或等效的类方法