回 帖 发 新 帖 刷新版面

主题:time()函数的返回值类型是什么?


初学visual foxpro,在读《visual foxpro应用基础,第三版》(作者:李雁翎)。visual foxpro中有日期类型,还有一种日期时间类型。但是,time()函数只返回时间值,这个返回值应该是什么类型?起初我认为应该是日期时间型,但在做运算时发现好像不是这样。例如:

t = datetime()
? t+3
可以正常的运算。

t = time()
? t+3
报错:操作数和操作符类型不匹配。

回复列表 (共4个回复)

沙发

另外,如何判断一个表达式的类型?

板凳

DATETIME( ) 函数
返回值
日期时间型
所以
t = time()
? t+3
可以运算。
TIME( ) 函数
返回值字符型
所以报错。

TYPE( ) 函数
返回表达式的数据类型。

VARTYPE( ) 函数
返回表达式的数据类型。

VARTYPE( ) 与 TYPE( ) 相似,但 VARTYPE( ) 更快并且不需要用引号("")将指定表达式括起。

3 楼

非常感谢

4 楼

既然看到有type( )函数,我不得不说几句肺话.

type( )函数里面的参数是字符串,是变量的名字.
从而得到该字符串为名的变量(或属性)的值 的类型,如果不存在,或不确定,得U

这里有个用法实在是太奇妙了,在其它地方还真找不到更好的办法了.
在EXCEL里面,想知道是否存在某个表的时候,帮助文档示例里,用的是for each ... in ...
把所有表名都校对一次.如果直接使用该表名的时候,假如不存在这个表,则会出错.
但在VFP里用type( )就解决了
if type('Excel.workbooks(1).sheets("查表名").name')="C" then
或者编程到了某一个位置的时候,甚至不能确定到底是否已创建EXCEL对象的时候,(甚至运行过程中被关闭了都是有可能的.)用
if type("Excel.workbooks.count")="N" then

或者某个对象是否存在,某个变量是否存在,某个属性是否存在.
由此延申开去......
你能找得到其它更好的办法吗?

我来回复

您尚未登录,请登录后再回复。点此登录或注册