命令后置条件表达式

简介: 命令后置条件表达式

命令后置条件表达式

  • 后置条件是附加到命令或控制Caché是否执行该命令或命令参数的命令参数的可选表达式。如果后置条件表达式的计算结果为TRUE,则Caché将执行命令或命令参数。决定Caché是否执行该命令或命令参数。后置条件表达式的计算结果为FALSE,则Caché不执行命令或命令参数,并从下一个命令或命令参数继续执行。
  • 除了控制流命令(IFELSEIFELSEFORWHILEDO WHILE)和块结构错误处理命令(TRYTHROWCATCH)之外,所有ObjectScript命令都可以采用后置条件表达式。(后置表达式是可选的)
  • 如果命令关键字和该命令一个或多个参数都指定了后置条件,则首先计算关键字的后置表达式。
  • 要向命令添加后置条件,请在COMMAND关键字后面紧跟一个冒号(:)和表达式,以便具有后置条件表达式的命令的语法为:
Command:pc
复制代码
s count = 4
  w:count<5 "count < 5",!
  s count = 6
  w:count>5 "count > 5",!
复制代码

赋值命令

  • SET为变量赋值。
  • KILL删除为变量赋值的操作。
  • NEW为变量赋值建立新的上下文。
  • MERGE将全局变量节点或多维数组合并到目标变量。
  • ZKILL删除节点,同时保留该节点的子代。

Set命令

set命令为变量赋值。它可以为单个变量赋值,也可以同时为多个变量赋值。

如果指定的变量不存在,则SET会创建该变量并赋值。如果存在指定的变量,则SET将用指定的值替换先前的值。由于SET按从左到右的顺序执行,因此可以为一个变量赋值,然后将该变量赋值给另一个变量。

  • set的最基本语法是:
SET variable = expression
复制代码
//将yx变量的值设置为yaoxin
    s yx = "yaoxin"
复制代码
  • 要设置多个变量中每个变量的值,请使用以下语法:
SET variable1 = expression1, variable2 = expression2, variable3 = expression3
复制代码
//设置多个变量中每个变量的值
    s yx = "yaoxin", yx1 = "yao", yx2 = "xin", 
复制代码
  • 通过单次调用set a=value、b=value、c=value、...,可以执行的赋值次数没有限制。
  • 要将多个变量设置为等于单个表达式(效率最高),请使用以下语法:
SET (variable1,variable2,variable3)= expression
复制代码
//同时设置yx, yx1, yx2的置为yaoxin
    s (yx, yx1, yx2) = "yaoxin" 
复制代码
  • 单次调用set(a,b,c,...)=value可以执行的最大赋值数量是128。超过此数字会导致<SYNTAX>错误。
  • 可以使用set调用返回值的方法。
// 其中ClassMethodName()是要调用的类方法的名称,ClassName是包含方法的类的名称,PackageName是包含类的包的名称。该方法的返回值被赋给retval局部变量。##class()构造是代码中必需的文字部分。
    SET retval = ##class(PackageName.ClassName).ClassMethodName()
复制代码
//当前电脑的名称为LAPTOP-ARLL3DSO
    s x = ##class(%SYS.System).GetNodeName()
复制代码
  • 可以赋值JSON对象和数组。
//赋值JSON对象
    s json = {"name":"yaoxin","age":31,"gender":"男"}
  q json.%ToJSON()
复制代码
//赋值JSON数组
    s json = ["yaoxin",31,"男"]
  q json.%ToJSON()
复制代码
//嵌套JSON
  s json = {"name":"yaoxin","age":31,"gender":"男","row":["yaoxin",31,"男"]}
  q json.%ToJSON()
复制代码
  • 可以将$PIECE$EXTRACT函数与等号两侧的SET一起使用。当在等号的右侧使用时,$PIECE$EXTRACT从变量中提取子字符串,并将其值分配给等号左侧的指定变量。$PIECE使用指定的分隔符提取子字符串,而$EXTRACT使用字符计数提取子字符串。
s A = "1^2^3^4^5^6^7^8^9"
  s $p(A, "^") = "abc"
  w !,"A = ",A
  s A = "123456789"
  s $e(A) = "abc"
  w !,"A = ",A


相关文章
|
1天前
|
编译器 C++
C++系列七:表达式
C++系列七:表达式
|
6月前
|
存储 Java
什么是语句?什么是表达式?
什么是语句?什么是表达式?
|
1天前
|
Python
什么是语句?什么是表达式?怎么区分?
编程语言中的语句和表达式是基础概念。语句是执行操作或命令的代码行,如Python的`print("Hello, World!")`,通常以换行符结束。表达式则表示值或计算过程,如`2 + 2`,可赋值给变量或用于计算。语句侧重于执行动作,表达式侧重于计算值。表达式可含运算符、变量等,而语句由主语和谓语构成。示例中,`x = 10`和`print("Hello, World!")`是语句,`y = x + 5`和`result = a * b + c`是表达式。
|
1天前
|
SQL 数据库 Python
F表达式
F表达式。
15 4
|
1天前
|
前端开发
简化 if true...else 条件表达式
简化 if true...else 条件表达式
|
10月前
逻辑判断使用
逻辑判断使用
29 1
|
10月前
条件测试逻辑判断应用
条件测试逻辑判断应用
37 2
|
12月前
|
存储 编译器 C语言
循环控制语句的处理及条件分支的处理方法
循环控制语句的处理及条件分支的处理方法
66 0
|
Java
表达式脚本
表达式脚本
68 0
|
C++
C++条件判断语句使用方法(if else 三目运算符 switch)
C++条件判断语句使用方法(if else 三目运算符 switch)
127 0