打印本文打印本文 关闭窗口关闭窗口

编写了一个布尔型IIFBool自定义函数,但编译时出错

作者:开拓者 TB 来源:cxh99.com 发布时间:2023年07月18日
  • 咨询内容: 本帖最后由 tygk 于 2020-5-20 17:24 编辑

    Vars
        BoolSeries a;
        BoolSeries b;
        BoolSeries c;
           
    Begin
        if(a) {Return b;} else {Return c;}
    End


    编译时提示:
    Return语句的返回值类型与公式定义的返回值类型不符。

    这是什么原因?如何改进使其通过编译?

     

     来源:CXH99.COM

  • TB技术人员: 返回值应是Bool型,不能为BoolSeries。要想得到b,c的返回值,可使用BoolRef b,c来定义。

     

  • TB客服:
    Yuen_Lee 发表于 2020-5-21 12:51
    返回值应是Bool型,不能为BoolSeries。要想得到b,c的返回值,可使用BoolRef b,c来定义。 ...

    改为:

    Vars
        Bool a;
            BoolRef b;
            BoolRef c;
           
    Begin
        if(a) {Return b;} else {Return c;}
    End

    编译时,提示错误:无法识别的字符串:BoolRef

    这是什么原因?

     

  • 网友回复:
    Yuen_Lee 发表于 2020-5-21 12:51
    返回值应是Bool型,不能为BoolSeries。要想得到b,c的返回值,可使用BoolRef b,c来定义。 ...

    改为:

    Vars
        Bool a;
            BoolRef b;
            BoolRef c;
           
    Begin
        if(a) {Return b;} else {Return c;}
    End

    编译时,提示错误:无法识别的字符串:BoolRef

    这是什么原因?

     

  • 网友回复:
  • 不要返回b和c。在调用你的函数后,b,c的值就已经可以取了。
    如:
    IIFBool(price,b,c);
    x = b;
    y = c;
    就能发现b,c的值已经通过函数改变了。

打印本文打印本文 关闭窗口关闭窗口