对象布尔日期

93 阅读1分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 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),!