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
}


相关文章
|
小程序 JavaScript
微信小程序向左滑动删除操作(类仿微信、QQ)
微信小程序向左滑动删除操作(类仿微信、QQ)
230 0
|
应用服务中间件 JavaScript 虚拟化
阿里云香港轻量应用服务器介绍与测评:月付24元/30Mbps带宽/1TB流量
阿里云香港24是阿里云推出了一款非常优惠的香港的轻量应用服务器,每个月只需要24元,流量有1T,30M的带宽,国内延迟非常低,联通和移动是直连,电信去程ntt,回程cn2,性价比非常高。本文详细介绍这个方案的配置以及做一个简单的测评。
34041 0
|
7月前
|
SQL 存储 关系型数据库
int(1) 和 int(10) 有什么区别?
在MySQL中,`int`类型后面的数字(如`int(1)`、`int(10)`)并不影响其存储范围,最大值仍为4294967295(无符号)。这些数字只有在配合`zerofill`使用时才有意义,用于显示时不足位数补0。例如,`int(4) zerofill`会将1显示为0001。这适用于需要固定长度编号的场景,如学号等。
176 3
int(1) 和 int(10) 有什么区别?
|
8月前
|
存储 移动开发 算法
【潜意识Java】Java基础教程:从零开始的学习之旅
本文介绍了 Java 编程语言的基础知识,涵盖从简介、程序结构到面向对象编程的核心概念。首先,Java 是一种高级、跨平台的面向对象语言,支持“一次编写,到处运行”。接着,文章详细讲解了 Java 程序的基本结构,包括包声明、导入语句、类声明和 main 方法。随后,深入探讨了基础语法,如数据类型、变量、控制结构、方法和数组。此外,还介绍了面向对象编程的关键概念,例如类与对象、继承和多态。最后,针对常见的编程错误提供了调试技巧,并总结了学习 Java 的重要性和方法。适合初学者逐步掌握 Java 编程。
138 1
|
机器学习/深度学习 算法 搜索推荐
机器学习方法之强化学习
强化学习是一种机器学习方法,旨在通过与环境的交互来学习如何做出决策,以最大化累积的奖励。
223 4
|
存储 缓存 负载均衡
Nacos注册中心
本节从Nacos安装、运行到具体规则配置,带领读者们深度参与了Nacos日常使用场景,Nacos作为注册中心可以优雅替换Eureka也离不开SpringCloud Alibaba的开源贡献
|
XML 缓存 Java
SpringMVC常见组件之ViewResolver分析
本文我们尝试总结分析SpringMVC体系中的视图解析器-ViewResolver。其根据name解析视图View,通常鼓励实现类考虑国际化策略实现。
212 0
|
存储 编译器 C语言
STM32的启动过程 — startup_xxxx.s文件解析(MDK和GCC双环境)
无论是是何种MCU,从简单的51,MSP430,到ARM9,ARM11,A7 都必须有启动文件,对于MCU来说,他是如何找到并执行main函数的,就需要用到“启动文件”,本文就来说说 STM32 的启动过程。
1669 1
STM32的启动过程 — startup_xxxx.s文件解析(MDK和GCC双环境)
|
机器学习/深度学习 SQL 人工智能
Web LLM 实验:利用 LLM API 实现命令注入
Web LLM 实验:利用 LLM API 实现命令注入
阿萨学工具: Apifox 的智能Mock功能
阿萨学工具: Apifox 的智能Mock功能
256 0

热门文章

最新文章