携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第41天,点击查看活动详情
对象
- 对象值引用内存中对象的实例。可以将对象引用(
OREF)分配给任何局部变量。
s mPerson = ##class(Person).%New()
w mPerson,!
zw mPerson
- 要确定变量是否为对象,请使用
$ISOBJECT函数。
if $isobject(mPerson) {
w "是对象",!
} else {
w "不是对象",!
}
s str = "not oref"
if $isobject(str) {
w "是对象",!
} else {
w "不是对象",!
}
- 将对象值赋给变量(或对象属性)会产生增加对象的内部引用计数。
w mPerson,!
s aPerson = mPerson
w aPerson,!
s bPerson = ##class(Person).%New()
w bPerson,!
s cPerson = ##class(Person).%New()
w cPerson,!
1@YX.Person
1@YX.Person
2@YX.Person
3@YX.Person
- 当对对象的引用数量达到0时,Caché会自动销毁该对象(调用其
%OnClose()方法并将其从内存中移除)。
布尔
- 如果表达式的计算结果为非零数值,则将其解释为
1(TRUE),如果计算结果为零数值,则将表达式解释为0(FALSE)。
以下为true:
if 1 {
w "true",!
} else {
w "false",!
}
if 8.5 {
w "true",!
} else {
w "false",!
}
if "1 banana" {
w "true",!
} else {
w "false",!
}
if 1+1 {
w "true",!
} else {
w "false",!
}
if -7 {
w "true",!
} else {
w "false",!
}
if +"007"=7 {
w "true",!
} else {
以下为false:
if 0 {
w "true",!
} else {
w "false",!
}
if 3 - 3 {
w "true",!
} else {
w "false",!
}
if "yx" {
w "true",!
} else {
w "false",!
}
if "" {
w "true",!
} else {
w "false",!
}
if -0 {
w "true",!
} else {
w "false",!
}
if "007"=7 {
w "true",!
} else {
w "false",!
}
日期
- ObjectScript没有内置的日期类型;相反,它包括许多函数,用于操作和格式化表示为字符串的日期值。
$HOROLOG变量 包含当前进程的本地日期和时间。
w $h,!
w +$h,!
w $p($h,",",2),!
$NOW函数 返回当前日期的本地日期和时间,以小数秒为单位。
w $now(),!
$ZDATE函数 验证日期并将其从内部格式转换为指定的显示格式。
w $zdate($h),!
w $zd($h, 3),!
$ZTIME函数 验证时间,并将其从内部格式转换为指定的显示格式。
w $ztime($p($h,",", 2)),!
w $zt($p($h,",",2), 3),!
$ZDATETIME函数 验证日期和时间,并将其从内部格式转换为指定的显示格式。
w $zdt($h),!
w $zdt($h,3),!
$ZTIMESTAMP变量 包含协调世界时间格式的当前日期和时间。
w $zts,!
w $zdt($zts,3,,3),!
$ZTIMEZONE变量 包含格林威治子午线的时区偏移量。
w $ztz,!
s now = +$p($zts, ",", 2) + $zabs(($ztz * 60))
w $zt(now),!
$ZHOROLOG变量 启动库以来经过的秒数。
w $zh,!
w $zhorolog/3600,!
$ZHOROLOG变量 计算程序运行时间。
/// w ##class(YX.FouthDataType).RunTime()
ClassMethod RunTime()
{
s t1 = $zh
// todo ...
s t2 = $zh
q t2 - t1
}
$ZDATEH函数 验证日期并将其从显示格式转换为Caché内部格式。
w $zdateh("06/23/2021"),!
w $zdh("2021-06-23",3),!
w $zdh("T",5),!
$ZTIMEH函数 验证时间并将其从显示格式转换为Caché内部格式。
w $ztimeh("16:17:00"),!
w $zth("16:17:00.123"),!
$ZDATETIMEH函数 验证日期和时间,并从显示格式转换为Caché内部格式。
w $zdatetimeh("2021-06-23 12:00:00", 3),!
w $zdatetimeh("T", 5),!