以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  关于ubound函数的疑问  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=137815)

--  作者:rocklet
--  发布时间:2016/8/10 15:28:28
--  关于ubound函数的疑问
以下程序:
RUNMODE:0;
cl:CLOSE;
cc:UBOUND(CL);
可以通过,但是将cl改成中间语句,如:
RUNMODE:0;
cl:=CLOSE;
cc:UBOUND(CL);
就无法通过编译。提示未定义的变量‘cl’
这是为什么呢?

--  作者:jinzhe
--  发布时间:2016/8/10 15:33:54
--  

UBOUND这个函数是用来获取数组上界的

因此CL:CLOSE;这句使得CL变成了一个序列变量(数组的一种),所以没问题

CL本来就不是数组,加了一个等号之后CL就不能成为序列变量了(也就不是数组了),所以是函数取值会报错的。

 

不用序列变量,用常规数组的办法是:

RUNMODE:0;
variable:c1[]=0;//先定义成常规数组,一个空数组
c1:=CLOSE;//然后赋值close,这样一个常规数组转化成了序列变量,数组扩大为close的数据量
cc:UBOUND(C1);//取值

 

[此贴子已经被作者于2016-8-10 17:08:50编辑过]

--  作者:rocklet
--  发布时间:2016/8/10 15:36:39
--  
原来如此,谢谢