New命令

简介: New命令

使用参数传递的KILL影响

  • 引用传递变量,执行kill并将变量包含在列表中,也会kill相应的实际变量。当函数或子例程终止时,实际变量将不再存在。
ClassMethod Kill5()
{
  s a = "yx"
  w !,"执行sub之前: ", $data(a)
  d sub(.a)
  w !,"执行sub之后: ", $data(a)
  q
sub(&x)
  w !,"k之前 x: ", $data(x)
  k x
  w !,"k之后 x: ", $data(x)
  q
}
复制代码
  • 通常不应该kill形参列表中指定的变量。当Caché遇到使用参数传递(无论是通过值传递还是通过引用传递)的函数或子例程时,它会隐式地为形式列表中的每个变量执行一个new命令。当它退出函数或子例程时,它会隐式地为形式列表中的每个变量执行kill命令。在使用按引用传递的形式变量的情况下,它在执行kill之前更新相应的实际变量。

Zkill命令

ZKILL命令删除指定数组节点的值,而不会杀死该节点的后代。相反,kill命令删除指定数组节点的值以及该节点的所有子代。数组节点可以是局部变量、进程私有变量或全局变量。

ClassMethod Kill6()
{
  k a, ^b, ^||c
  s a = "food", a(1) = "fruit", a(2) = "vegetables"
  s a(1, 1) = "apple", a(1, 1, 1) = "pear", a(1 ,2) = "banana"
  s a(2, 1) = "watermelon"
  s ^b = "food", ^b(1) = "fruit", ^b(2) = "vegetables"
  s ^b(1, 1) = "apple", ^b(1, 1, 1) = "pear", ^b(1 ,2) = "banana"
  s ^b(2, 1) = "watermelon"
  s ^||c = "food", ^||c(1) = "fruit", ^||c(2) = "vegetables"
  s ^||c(1, 1) = "apple", ^||c(1, 1, 1) = "pear", ^||c(1 ,2) = "banana"
  s ^||c(2, 1) = "watermelon"
  w "k之前",!
  zw a, ^b, ^||c
  zkill a(1), ^b(2), ^||c(1,1)
  w "k之后",!
  zw a, ^b, ^||c
}
复制代码

new命令创建一个新的局部变量上下文。它在旧上下文中保留现有的局部变量值,然后启动一个新的上下文,在新上下文中没有为局部变量赋值。在使用应用程序中,使用NEW初始化整个应用程序或应用程序的主要子系统的变量。

  • NEW最常在do命令调用的例程或方法中使用。一般在方法开头使用初始化变量。
ClassMethod ProcedureBlock()
{
  for i = 1 : 1: 5{
    d ..ProcedureBlock1("this is a String")
  }
}
ClassMethod ProcedureBlock1(var)
{
  n (var)
  w var,!
  w "这是Not ProcedureBlock",!
  s i = 2
}


相关文章
|
Linux 数据安全/隐私保护
Linux用户管理命令
Linux用户管理命令
76 1
|
Windows
运行系统命令
运行系统命令
109 0
|
监控
libimobiledevice命令
简介 A library to communicate with services of Apple iOS devices using nativeprotocols. 1、打印app列表 ideviceinstaller -l 2、查看当前已连接的设备的UUID idevice_id -...
1698 0
|
Windows
一些命令使用
版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79396288 ...
1016 0
|
网络协议 数据安全/隐私保护
|
Linux 网络虚拟化